Commit Graph

9586 Commits

Author SHA1 Message Date
baldurk bb8c8294e5 Ensure we always create a reflection object, even if it's empty
* Fixes crashes with DXBC objects that only contain input/output signatures
2019-10-22 20:34:20 +01:00
baldurk 92e2899ca3 Add support for DXGI desktop duplication API
* We treat it the same as OpenSharedResource/Handle, an opaque resource fetched
  from elsewhere and wrapped, instantly treated as dirty.
2019-10-22 13:13:36 +01:00
Alexandros Frantzis ba3df46052 Fall back to EGL for GL replay
We want to try to use the EGL platform as a fallback when the GL
platform can't create a GL context, since EGL_DEFAULT_DISPLAY might
still provide a workable EGLDisplay. This, for example, allows us to
replay traces when on-screen display is not required, by using the Mesa
surfaceless platform (by setting the "EGL_PLATFORM=surfaceless" Mesa
environment variable).
2019-10-22 11:07:47 +01:00
baldurk 70780b0750 32-bit compile fixes 2019-10-21 16:06:02 +01:00
baldurk fd5fd7269a Split up texture viewer status bar into separate items to wrap better 2019-10-21 13:56:10 +01:00
baldurk 00b217f6f7 Fix issues with flow layout sizing when too small 2019-10-21 13:51:30 +01:00
baldurk a602e7ab1c Add string form for missing ReplayStatus return codes 2019-10-21 13:05:05 +01:00
baldurk 02520ed8f7 Don't use full filename as texture name in image viewer 2019-10-21 12:28:18 +01:00
baldurk 3cbce1f0c4 Fix calculation of dataSize and using wrong pitch in WriteToSubresource 2019-10-21 12:28:18 +01:00
baldurk bdf2f046d9 Add stubbed out DXIL bytecode decoder 2019-10-18 23:02:26 +01:00
baldurk e0ea5ed3da Split out DXBC bytecode to be separate from DXBC container 2019-10-18 23:02:19 +01:00
baldurk 91c9afb655 Move reflection data into separate struct in DXBC 2019-10-18 21:33:39 +01:00
baldurk 2a21bd8d5e Move DXBC ShaderType to enum class in common header 2019-10-18 20:57:35 +01:00
baldurk cd020007d2 Rename dxbc_inspect.* to dxbc_container.*, and DXBCFile -> DXBCContainer 2019-10-18 20:57:35 +01:00
baldurk 2a1baae8a9 Add decoder of LLVM block-stream 2019-10-18 20:57:35 +01:00
baldurk a9a094bcdd Add bit reader to decode low-level LLVM bitstream 2019-10-18 20:57:35 +01:00
baldurk 6140701358 Add stub DXIL project 2019-10-18 20:57:35 +01:00
baldurk 0bd249c44e Add missing .c_str() when formatting strings 2019-10-18 20:57:23 +01:00
baldurk 30fe42672b Declare multidimensional arrays in right order in SPIR-V disassembly 2019-10-18 15:42:13 +01:00
baldurk 9d05ab992e Handle reflecting runtime arrays of arrays 2019-10-18 15:35:54 +01:00
baldurk 1cfa46e771 Don't call D3D12 FirstFrame() on destruct, but on construct 2019-10-18 15:35:38 +01:00
baldurk 7533c6b7ac Improve handling of different cases registering vulkan layer on linux
* In particular, if there is a mismatched layer registered under e.g. /etc then
  we always need to elevate, even if the user wants their layer to be fixed and
  registered user-local.
2019-10-16 15:12:38 +01:00
baldurk 6562185e1a When using a terminal emulator to sudo, print the command 2019-10-16 15:11:20 +01:00
baldurk b48b3fb87e pkexec is not a reliably graphical sudo, don't use it 2019-10-16 13:39:24 +01:00
baldurk 52e0ecf543 Add dlsym hooking for extreme cases on linux. Closes #1551 2019-10-16 13:02:59 +01:00
baldurk a59d17f5b8 Fix bug with structured buffer loads on D3D11 2019-10-15 17:35:01 +01:00
baldurk f5cc5c22ad Don't display typed buffers as structured in D3D11 pipeline state 2019-10-15 17:34:38 +01:00
baldurk 9548274a60 Store specified GPU address in vulkan info on replay 2019-10-15 16:08:21 +01:00
baldurk eee1efcf4f Handle naming forward pointer types better in SPIR-V disassembly 2019-10-15 15:07:42 +01:00
baldurk 03ddc61779 Support rich resource text in buffer viewer 2019-10-15 15:05:38 +01:00
baldurk 328666e71f Fix clipping of rendered rich resource text 2019-10-15 15:04:56 +01:00
baldurk 553957f933 Fix memory reference tracking of forced references 2019-10-15 14:18:07 +01:00
baldurk ae833182cb Remove a couple of outdated TODO items 2019-10-15 13:10:17 +01:00
baldurk 125cee09ef Add support for VK_KHR_timeline_semaphore 2019-10-15 12:51:11 +01:00
baldurk d48b84d8f5 Pass buffer length to format string parse, for better default format
* If we are only looking at a 4-byte buffer, don't use a uint4 default or it
  will fail to display anything
2019-10-15 10:54:42 +01:00
baldurk 179dbb0e43 Display sample mask in D3D12 pipeline state 2019-10-14 14:06:42 +01:00
baldurk 6be0736d24 Update miniz to 2.10 with ZIP64 support 2019-10-14 14:06:42 +01:00
baldurk e371b5ab72 Update vulkan headers to 1.1.125
* Add support for VK_KHR_spirv_1_4
2019-10-14 10:14:27 +01:00
baldurk d3a4f5dc09 Expand locking around vulkan queues
* Submits need to be atomic vs starting and ending captures, or a partial submit
  could be included in the capture.
2019-10-11 13:07:36 +01:00
baldurk 2f82e3a23a Tweak SERIALISE_ELEMENT_ARRAY to allow chained properties
* E.g. SERIALISE_ELEMENT_ARRAY(foo, bar).Named("foo_real");
2019-10-11 13:07:36 +01:00
baldurk 5acb6af862 Fix some painting not reacting to different fonts correctly 2019-10-11 13:07:36 +01:00
baldurk 83c98f1ff7 Tweak rich resource text rendering to match non-rich text positioning 2019-10-11 13:07:36 +01:00
baldurk 0908588481 Don't delete capture unless it's still temporary, even if we own it 2019-10-11 13:07:36 +01:00
Alexandros Frantzis 090cd03185 Introduce GLPlatform::CanCreateGLContext()
Introduce a method to check if a platform supports desktop GL.
Most platforms support desktop GL by default, so for them the
implementation of this method is trivial. For EGL, though, we
have to implement a proper check, since EGL support for non
GLES APIs is optional.
2019-10-11 12:39:05 +01:00
Alexandros Frantzis e8b696cbbf Use EGL directly for Wayland GL support
For Wayland support on GL we currently fall back to the GLES code path
just to get EGL. This commit uses the EGL platform directly for Wayland,
also removing the dependency on GLES.
2019-10-11 12:39:05 +01:00
Alexandros Frantzis 616a355a63 Make EGL support independent of GLES support
EGL (>= 1.4) supports desktop GL, in addition to GLES. This commit makes
EGL support independently configurable at build time, to allow GL to use
it even if GLES is not needed or available.
2019-10-11 12:39:05 +01:00
baldurk 8259348707 Remap pipeline ID to live ID before calling driver 2019-10-10 19:00:16 +01:00
baldurk 2afd8fd887 Update to latest vulkan and SPIR-V spec files
* Add support for VK_KHR_shader_clock
2019-10-10 16:48:43 +01:00
baldurk 9b9b747e1e Set all drawcall parameters inside ExecuteIndirect from current state 2019-10-10 16:48:42 +01:00
baldurk ae0c745656 Don't clear important data when using StructuredSerialiser 2019-10-10 16:48:42 +01:00