Commit Graph

9571 Commits

Author SHA1 Message Date
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
baldurk 8ce2ea2202 Improve calculation of histogram
* The histogram shouldn't be calculated as channel-wise averages, but instead by
  'stacking' the channels (each channel contributes 1 to the appropriate
  bucket).
* Degenerate channels (where min==max) are excluded and listed only as a single
  spike, to avoid blowing out the automatic y-axis.
2019-10-10 16:48:42 +01:00
baldurk 4e6af7a47a Don't crash if the event browser isn't open when opening a capture 2019-10-10 16:48:42 +01:00
baldurk 0d658156b3 Add a finishing dialog when recompressing a capture 2019-10-10 16:48:42 +01:00
baldurk e9dda8343f When deleting temp files, remove from the recent file list. Closes #1540
* If the UI was launched with a filename as a parameter to open the capture, it
  will be added to the recent capture file list. Only later (relatively
  speaking) if we make a capture connection will we realise that it is temporary
  and potentially delete the file. If we do so, remove the capture from the
  recent file list.
2019-10-10 16:48:42 +01:00
Benson Joeris 4a6235d9b7 Add Img/MemRefs for resources with initial contents
This ensures that ImgRefs/MemRefs exist for images/memory with initial
contents. Previously if the resource was never accessed, then no
information was saved about the resource references; this lack of
reference info is pesimistically interpreted at replay as requiring
complete reset.

This change now explicitly inserts empty ImgRefs/MemRefs for each
resource when preparing the initial contents.

Change-Id: I51930640cd22bc59b3436c920e29d9b670bd35cc
2019-10-09 18:03:30 +01:00
Charlie Birks e303b8372e Only use this + 4 slot if there is no slot 4 2019-10-09 17:47:33 +01:00
Charlie Birks 3fc89b3717 Replace GetLocalVariable with GetLocalVariables 2019-10-09 17:47:33 +01:00
Charlie Birks c4363e615c Fix injecting on Android 9
Names aren't returned in GetLocalVariable and slots don't start at 0.
2019-10-09 17:47:33 +01:00
baldurk ec236b4ff3 Bump version to 1.6 2019-10-09 17:38:34 +01:00
baldurk a94f238e37 Ensure PersistantConfig member functions are documented v1.5 2019-10-09 10:25:49 +01:00
Aliya Pazylbekova 3587ec2e77 VK pixel history: re-write shaders to remove side effects
So that we can replay a draw multiple times.
Added m_EventResourceUsage that keeps track of resource usage
for an event, allows quickly figuring out if an event had any
shader RW resources, and only then doing an expensive part of
analyzing/rewriting a shader.
2019-10-01 21:48:29 +01:00
baldurk 16dace3d48 Fix tests running on 32-bit 2019-10-01 17:59:01 +01:00
Benson Joeris 87a172167f Reset images when backing memory is Reset
There are some situations that cause us to reset the memory backing an
image, but not the image itself--this puts the image in a corrupted
state.

This fix updates the image initialization logic to check the bound
memory. If the memory is written by any captured command, or if the
memory is reset, then the entire is image is assumed to be
uninitialized.

Change-Id: Ifb1ec6bfd83f93def0818dbabcb0ea57f0febe54
2019-10-01 16:47:28 +01:00
baldurk 8ca714382b Don't grab backbuffer screenshot in D3D12 while holding transition lock
* Prevents a deadlock between the cap transition lock and the queue's lock.
2019-09-30 17:42:14 +01:00
baldurk fa4c7c0faa Fix D3D12's GetTextureData() to work properly for 3D textures. 2019-09-30 16:30:40 +01:00