Commit Graph

5161 Commits

Author SHA1 Message Date
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
Dimitris Kapnopoulos 4ab61286e4 Added custom Splitter class, RDSplitter, with titles in the handles 2017-03-13 10:02:43 -07:00
Victor Moya 0964034b4b Implemented Vulkan counters
Implemented support for Vulkan counters in FetchCounters based on the
vulkan Pipeline Statistics query and the precise Occlusion query.
2017-03-13 06:33:14 -07:00
Michael Rennie e6d2f1b7a6 glMapBuffer/glGetBufferSubData not core ES, use glMapBufferRange.
Mesh viewer for ES now working.
2017-03-13 06:20:57 -07:00
baldurk 5e2717daec Calculate compressed byte size per-mip, not always from top mip size 2017-03-10 16:28:55 +00:00
Janos Pantos 1c675a4a24 Use glClearDepthf internally instead of glClearDepth 2017-03-10 16:09:36 +00:00
Janos Pantos a719d349b7 Don't use parameters and functions which are not supported by OpenGL ES.
Remove the usage of unsupported functions and invalid parameters of
various functions (e.g. Enable/Disable/Get/etc).
2017-03-10 16:09:36 +00:00
baldurk 7fe94920d5 Fix accidental call to ARB_direct_state_access function instead of EXT
* The ARB version isn't emulated so it wouldn't work on systems without
  GL 4.5/ARB_dsa.
2017-03-10 16:09:03 +00:00
baldurk c89bcfbb7a More robust isolation of the git commit hash, without special cases 2017-03-10 13:27:59 +00:00
baldurk 248dbfa4a2 Allow external overriding of auto-fetched git hash identifier in cmake
* This is useful if the build doesn't happen within a git checkout and
  you want to pass in the hash anyway, but it also allows adding
  suffixes like -official etc.
2017-03-10 13:17:46 +00:00
baldurk 8f491421f0 Disable hooking of nvoglv{32,64}.dll and nvapi{,64}.dll
* This is in case they do funky stuff that our hooking might interfere
  with.
2017-03-10 12:45:33 +00:00
baldurk 56cf9d6a51 Update SPIR-V disassembly strings for latest constants & extensions 2017-03-09 19:13:27 +00:00
baldurk c1c16b3f08 Update to glslang as of commit 229a6f7f7ba5cdff8917fa11d754e0fe8db6abf1 2017-03-09 19:13:26 +00:00
baldurk dff44dc2b1 Fix for interaction between KHX extensions and NV_dedicated_allocation 2017-03-09 19:13:26 +00:00
baldurk 9512a0fc68 Add support for KHX experimental external sharing extensions
* VK_KHX_external_memory
* VK_KHX_external_memory_capabilities
* VK_KHX_external_memory_fd
* VK_KHX_external_memory_win32
* VK_KHX_external_semaphore
* VK_KHX_external_semaphore_capabilities
* VK_KHX_external_semaphore_fd
* VK_KHX_external_semaphore_win32
* VK_KHX_win32_keyed_mutex
2017-03-09 19:13:25 +00:00
baldurk e0d1ce1c04 Update to vulkan headers v1.0.42 2017-03-09 19:13:24 +00:00
Michael Rennie eb6db1dcc5 Move host adb: check into ExecuteAndInject(), so qrenderdoc has it too. 2017-03-09 19:13:24 +00:00
Michael Rennie 8f8a291b4c Posix LaunchProcess read stdout/stderr pipes into ProcessResult. 2017-03-09 19:13:23 +00:00
Michael Rennie e7a1ac1c67 fflush stdout/stderr prints to aid debugging. 2017-03-09 19:13:23 +00:00
Janos Pantos e6686df74b Fix creating fake color/depth and output textures in case of GLES. 2017-03-09 19:13:22 +00:00
Janos Pantos 46a12525ef Modify shaders to be GLES compatible. 2017-03-09 19:13:21 +00:00
baldurk 7796863b00 Update resource usage entries recursively in draws for vkCmdExecCommands 2017-03-09 19:13:21 +00:00
baldurk 2780c9c522 Handle the same dll filename being loaded from multiple places
* This happens with atidxx64.dll which gets loaded as a stub and a real
  thing. If we hook the wrong dll then we might not intercept some calls
  that go to the real thing.
* In particular, LiquidVR tries to use the AMD extensions and if we
  don't properly block those calls, it will lead to a crash on replay.
2017-03-07 16:43:15 +00:00
baldurk 5c0d9876be Only serialise queue indices if sharing mode is CONCURRENT. Refs #529 2017-03-07 15:21:48 +00:00