Commit Graph

5184 Commits

Author SHA1 Message Date
baldurk 8f4c17c19b Fix missing ElementSize for structured UAVs bound on output merger 2017-04-04 13:33:24 +01:00
baldurk e1ea59e2e4 Temporary compile fix for enum declare until enum class refactor 2017-04-04 00:12:18 +01:00
baldurk 5030debdea Add remapping of physical devices on vulkan captures.
* This will solve the common case encountered when physical devices
  vary between capture and replay, where two devices swap over.
  E.g. [0]=AMD [1]=NV to [0]=NV [1]=AMD
* This can also happen with discrete and embedded GPUs that swap order.
* It will also provide a limited amount of portability by selecting a
  closer matching physical device if more than one is available.
2017-04-03 23:29:14 +01:00
baldurk 4064ef1b0e Fix copy-paste error replaying CmdDrawIndexedIndirect as CmdDrawIndrect 2017-04-03 19:23:35 +01:00
baldurk f33f975970 Fix slice calculation for displaying 3D textures on D3D12 2017-04-03 19:05:26 +01:00
baldurk 666aee093b Backport 'tagged' render invokes from qrenderdoc
* This is a possible fix for a case where render work triggered by mouse
  movements (such as pixel and vertex picking) can happen faster than it
  executes, leading to a backlog of render commands and a noticeable lag
  which only gets worse the more you move the mouse until everything
  seems to be unresponsive or laggy (especially if you then trigger a
  blocking command like event change, which will block the whole UI
  until the queued picks happen).
* Since a new pick coming in will override and make redundant the
  previous pick, we allow the render commands to do just that. If a new
  command comes in, we remove any previous commands with the same tag
  and put the command in the first match (this prevents a tagged invoke
  always being pushed to the back of the queue).
2017-04-03 18:31:59 +01:00
baldurk b63a32fe3b Outputs from pixel shaders are automatically colour output system values 2017-04-03 18:28:16 +01:00
baldurk 965c48e250 Only pretend to match replay requirements during capture. Refs #552
* When creating replay-only images via vkCreateImage we don't need to
  add any extra properties. Only during capture we need to add replay-
  needed properties, so that the same call will be used as during replay
  and so the same set of memory requirements.
2017-04-03 15:30:55 +01:00
baldurk e93dc87388 Don't hook internal CUDA dlls 2017-04-03 15:19:02 +01:00
Michael Vance a74ddadd59 Improved TreeListView copy/paste support.
- Fix sorting to respect visual ordering by ID, including parent.
- Provide Ctrl-A to 'Select All'. Note that there is an extant
bug with the redraw where renderdocui will not repaint when
it gets focus back.
2017-04-03 07:18:41 -07:00
Janos Pantos 3193595358 Refactor pixel storage mode getter/setter codes
Add PixelPackState similarly to PixelUnpackState, and use these two for
querying and setting pixel pack/unpack modes everywhere in the GL
codebase.
2017-04-03 07:18:31 -07:00
Janos Pantos 1a6b19a314 Remove using some non-GLES features from GL manager/renderstate/replay 2017-04-03 07:18:31 -07:00
Janos Pantos e110b759d3 Fix querying bound transform feedback in GL manager 2017-04-03 07:18:22 -07:00
Janos Pantos d22d744675 Fix mip info for rendering textures during remote replay
Textures are not cached during remote replay at client side, so do not
try to use mips from empty texture cache.
2017-04-03 07:18:15 -07:00
baldurk c50902f030 For depth-only textures allow a depth-read-only DSV to be bound with SRV
* We were only allowing depth-stencil textures to be bound with depth
  read-only DSVs, which doesn't cover all cases.
2017-03-28 11:48:28 +01:00
baldurk e89f047e09 Warning fix for VS2017, don't call toupper/tolower as they're int -> int 2017-03-28 11:48:28 +01:00
Peter Gal bb8ae3fb12 Add Android build support for GL ES
Allow building GL ES for Android.
Minimal guards are added to avoid using X11 calls
in case of Android and added support for Android
windowing system.
2017-03-28 03:47:57 -07:00
Janos Pantos a73c456a80 Extend GL extension check with GLES versions and compatible extensions 2017-03-28 03:47:50 -07:00
Michael Rennie 6bc0851121 On glDrawArrays, copy client vertex arrays into temporary VBOs.
GLES allows drawing from client memory instead of VBOs. We keep a set of
buffers, one for each potential attribute, to bind the vertex attribute to
instead of the client array pointer. These buffers are then filled before
the draw call.
2017-03-28 03:47:41 -07:00
Dimitris Kapnopoulos 6e06eb5164 Added tooltips for all QToolButtons. RDSplitter checks for valid index.
handleDoubleClicked in RDSplitter checks if the index argument is less than zero or bigger than count
2017-03-28 02:54:15 -07:00
Michael Rennie 74ffa0ef87 VK_NULL_HANDLE build fix. 2017-03-27 05:56:42 -07:00
baldurk 539341a96f 32-bit compile fix 2017-03-22 11:09:11 +00:00
baldurk 6e3f50c3ce Store the original vulkan swapchain imageUsage and apply it on replay
* This means if someone was using STORAGE_BIT for the swapchain then we
  add the bit to our fake backbuffers on replay.
2017-03-21 15:30:27 +00:00
baldurk e11f4a5ba7 Fix serialisation of non-empty arrays in dummy pQueueFamilyIndices 2017-03-21 15:13:51 +00:00
baldurk dabb790ee1 Fix handling of instanced mesh output from GS/tessellation stages
* For VS we can assume that instances all output the same amount of data
  so each instance outputs totalVerts / numInstances verts. However that
  assumption doesn't hold true for geometry/tessellation stage where
  each instance can expand independently.
* Unfortunately the only way to get per-instance sizes is to do an
  O(N^2) loop of draws up to the real number of instances, checking the
  total output each time, and find out the per-instance size from there.
* Once vulkan has an implementation for GS/Tess out, it will be simpler
  as we can just patch the shader to write to an atomic counter with the
  primitive/vertex output count in each instance.
2017-03-21 15:12:23 +00:00
baldurk d0394d9233 Only do queued row select on the stage that was selected
* This prevents out-of-range errors when picking in a GS out view an
  expanded mesh, and getting a row that's higher than exists in the VS
  in view
2017-03-21 12:38:21 +00:00
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
baldurk f3d7dc774f Add a D3D12MarkerRegion for future use
* Not used yet, as I need to figure out how to apply list markers when
  we record multiple individual lists. Doing open/close of a list just
  for the marker seems wasteful. It could be fired directly at the queue
2017-03-20 21:20:15 +00:00
baldurk 1b992db45c Close list earlier so that error bail-out conditions won't leave it open 2017-03-20 21:20:04 +00:00
baldurk a29dfb814b Set sample mask and sample count for patched PSOs in D3D12 overlays 2017-03-20 21:17:16 +00:00
baldurk d28657bd4a Set vertexOffset not baseVertex with offset in DrawInstanced() 2017-03-20 21:17:15 +00:00
baldurk 0ead37018d Remove redundant fix causing off-by-one errors at runtime. Refs #380
* Previously this fix was needed for shader debugging since we did a
  replay up to before the draw, before debugging. However we don't do
  that anymore and in general the event ID we last replayed will be
  accurate.
2017-03-20 21:16:08 +00:00
Janos Pantos 8b27eda845 Emulate glGetTexImage for GLES 2017-03-20 10:08:43 -07:00
baldurk d2d86b5726 Add 'floateleven' buffer format for R11G11B10 packed data, fix unpacking 2017-03-20 13:02:20 +00:00
baldurk 8badc43028 Add a natvis file to renderdoc project for rdctype::array/rdctype::str 2017-03-20 12:13:26 +00:00
baldurk 8016dea558 Add RDSplitter to project filters file as well as the project proper 2017-03-20 12:13:19 +00:00
baldurk 3ea26714fb Handle glCreateShaderProgramv returning 0 if the call fails
* The majority of GL calls that create objects are pretty failure proof
  since they don't really do anything apart from create/allocate. In the
  case of glCreateShaderProgramv though it requires the call to be valid
  e.g. the type enum to be correct, so it can actually return 0 if that
  happens.
* If we don't check for this then we end up creating an ID and program
  for name 0 which causes all sorts of problems.
2017-03-20 11:55:48 +00:00
baldurk be86d52491 Fixes for marking VAO 0 referenced. Refs #541 2017-03-20 11:21:10 +00:00
Graham Wihlidal e71614d58e Fix crash when "coherent maps" try to erase end()
* This happened because a memory handle was not currently mapped.
2017-03-20 11:04:27 +00:00
baldurk 4936c6cd67 Unverified experimental fix for a crash disassembling SPDB chunks 2017-03-14 21:52:13 +00:00
baldurk 747d0550f9 Compile fix - missing rename was mixed in with other changes 2017-03-13 19:06:22 +00:00
baldurk 487a1b7903 Start moving towards C++ only UI code. Assume C++ for the replay API
* The C# P/Invoke stuff doesn't directly use the header, and we are soon
  going to deprecate the C interface entirely.
2017-03-13 17:56:00 +00:00
baldurk 55565a148b Rename solution platforms Win32 -> x86 so that x64 becomes the default
* Thanks to build-master general @aras_p for the tip:
  https://twitter.com/aras_p/status/841287101907910656
* The projects are still defined with the usual platforms Win32 and x64,
  this only affects the naming in the solution configurations.
2017-03-13 17:23:42 +00:00
baldurk a262ad7314 List renderdocui first in sln so it is the default startup project
* VS will default to the first project, but only if the folder it's in
  (UI) is listed first too.
2017-03-13 17:23:42 +00:00
baldurk bda6cf0870 Fill out default script editor contents after initialising python 2017-03-13 17:23:41 +00:00
baldurk 8b9dcbe519 Remove pdblocate, move DIA2 usage into win32_callstack.cpp
* Previously on VS2010, the DIA2 library wasn't properly supported on
  64-bit, so it needed a separate program that always ran 32-bit and
  proxied operations over a named pipe.
* Now DIA2 will load correctly in 32-bit and 64-bit, so we can do the
  work in-process without needing the separate exe.
* We still need to distribute dbghelp.dll and symsrv.dll, so these now
  live alongside renderdoc.dll in the build/install folder with matching
  bitness.
* At the same time fixed a bug I noticed where the 0-based module index
  would return 0 for the first valid module and be treated as invalid.
2017-03-13 17:23:41 +00:00
baldurk c160dcf049 Update redistributable from VC100 to VC140 2017-03-13 17:23:40 +00:00
baldurk 15b983b4b4 Remove some OS-specific code due to VS2010 lacking a va_copy 2017-03-13 17:23:39 +00:00
baldurk b5f5b8534e Update solution and projects to VS2015, VS2010 is no longer supported
* Truly, this is a sad day. But unfortunately many dependencies are just
  not supported and it's increasingly difficult to stay on VS2010.
* In an ideal world, the IDE and compiler would be decoupled, but that's
  not the case.
2017-03-13 17:23:38 +00:00
baldurk 705462b43c Add RDSplitter to visual studio project 2017-03-13 17:23:38 +00:00