Commit Graph
2286 Commits
Author SHA1 Message Date
unknownandbaldurk 5e4bb7e3af Use strnlen as its better to be safe than reading past the chunk 2016-03-06 13:18:59 +01:00
unknownandbaldurk 8458b1d7a7 Implemented support for separate unstripped shader debug info
It works this way:
The GameEngine stored the original shader blob on disk.
Than we add the path to that file to the D3D_BLOB_PRIVATE_DATA section of the shader blob.
After that we can strip the Debug information with D3DCOMPILER_STRIP_DEBUG_INFO.

Renderdoc will first check if the shader already has debug information.
If it cannot find the PDB in the shader blob it will try to look for a PrivateDataSection.
If there is a valid file path in the PrivateDataSection it will search for debug information in there.
If it finds valid debug information it will replace the entire shader blob with the one loaded from disk.
2016-03-06 13:18:59 +01:00
baldurk bd7d38bbef Ensure that we wrap around the ring-buffer when range would overshoot
* For e.g. the text rendering we only actually use a subset of the
  buffer range each time - just enough for the characters we are
  rendering. But we need to be careful that the range specified by the
  descriptor set (256 float4s) is always valid, so wrap around on that
  size and not on the parameter size
2016-03-06 12:25:32 +01:00
baldurk 139124f9d7 Text atlas is no longer preinitialized, it's undefined 2016-03-06 12:22:20 +01:00
baldurk c1c4e7503d Linux platform separator is colon, not semi-colon 2016-03-03 23:54:35 +01:00
baldurk 8e15169a7f Linux compile fix 2016-03-02 17:45:15 +01:00
baldurk 8680360ed1 Tidy up some cases that weren't properly advancing subpasses. Refs #195 2016-03-01 19:35:48 +01:00
baldurk d987423fb9 Linux compile fix - only specialise ToStr on long for windows 2016-03-01 19:32:10 +01:00
baldurk 8bee720c6a Call CmdNextSubpass as appropriate on early-end of renderpass. Refs #195 2016-02-29 20:15:31 +01:00
baldurk 97220a4468 Make sure to properly filter glUseProgramStages chunks before removing
* This fixes a problem where removing "redundant" glUseProgramStages
  chunks actually removed other chunks that were legitimate.
* It's kind of hacky, but it's better than the other alternatives.
2016-02-29 20:06:36 +01:00
baldurk 096b1b1a7c Don't log out debug push/pop messages 2016-02-29 18:34:01 +01:00
baldurk a8b07fbff2 Change histogram result array to uvec4 instead of uint
* This complies with the packing rules needed for storage buffers
2016-02-28 13:42:05 +01:00
baldurk a91dc78a8c Fix wrong dimension calculation leading to wrongly included minmax tiles 2016-02-28 13:33:00 +01:00
baldurk a6a4ae6cd9 Use gl_VertexIndex / gl_InstanceIndex instead of ID variants on vulkan 2016-02-28 12:15:56 +01:00
baldurk 0a42d3e4d7 Rename 'Profile' target in visual studio to 'Development'
* When I went to explain to someone why the target was named Profile and
  not Debug as you might expect, I realised the reasons were entirely
  opaque and historical. So instead, rename it to Development since that
  is really what it's for - any profiling would be done in Release mode.
2016-02-28 11:33:23 +01:00
baldurk a347b54be4 Add some needed ToStr implementations 2016-02-27 17:51:19 +01:00
baldurk ba36dec115 Change a load of asserts to the new value-printing style assert. 2016-02-27 17:40:32 +01:00
baldurk 542131624f Create new assert macro, that can log the values in the expression
* The main motivation for this is because it's convenient to be able
  to just assert a simple expression rather than print a proper error
  message, but then after the fact you want to know what the value was
  (e.g. a return code, or similar).
2016-02-27 17:29:16 +01:00
baldurk 7b8097690d Disable force-crash for errors/asserts/etc in profile
* On balance I think this does more harm than good. The idea was to make
  sure errors don't get ignored when running in profile, but really all
  it did was mean people trying to debug renderdoc without much
  familiarity got confused as to why things crashed suddenly.
2016-02-27 14:53:52 +01:00
baldurk 7a557380aa Fix detection of separate samplers and textures to work properly 2016-02-25 22:29:19 +01:00
baldurk 939d7e56bd Compile glsl with vulkan/SPIR-V rules 2016-02-25 22:25:45 +01:00
baldurk 61591da4d0 Update GLSL_STD_450_names to match the newest spirv.hpp 2016-02-25 21:51:17 +01:00
baldurk 7be24e24d5 Update to glslang to latest
* Based on renderdoc branch with local modifications from upstream:
      https://github.com/baldurk/glslang/tree/renderdoc
    * hash bba704293106428f6063ba0a3fa7802e8f413def on renderdoc from
      5184353326ae52d63a1d7c7fccd66269aab768f7 on master
2016-02-25 21:48:51 +01:00
baldurk 92f4e3f90f Fix serialising between Win32 and x64 2016-02-24 00:28:44 +01:00
baldurk 9ee529e435 Call ReplacePresentableImageLayout earlier on initial layouts. Refs #185 2016-02-23 21:19:28 +01:00
baldurk a876e13c89 Fix embarassing crash (records only present during capture). Refs #189 2016-02-23 08:35:51 +01:00
baldurk e17e02d162 Create 'safe' git hash script that works outside git repo. Refs #186 2016-02-23 01:07:49 +01:00
baldurk 64ef0d93a8 Create an implicit vkUnmapMemory() in vkFreeMemory() (Refs #179)
* It's legal to free memory while still mapped and this should be
  handled, so here we clean up any mapped state that's present when
  destroying a memory resource record.
2016-02-23 00:49:33 +01:00
baldurk da94c7a8c6 Don't transition non-backbuffer images to PRESENT_SRC (Refs #185) 2016-02-23 00:13:05 +01:00
baldurk 07c4274165 Reduce tiles per block down to 10 so invocation size <= 128 (Refs #180) 2016-02-22 23:43:19 +01:00
Dominik Witczak 0cbb9ab576 Spaces => tabs 2016-02-22 15:38:19 +01:00
Dominik Witczak 0920d71cf1 Set TRANSFER_SRC usage flag for images @ capture 2016-02-22 15:22:23 +01:00
Dominik Witczak 660666ab17 Fix for #181: Missing image usage flag bit when setting up the font table 2016-02-22 13:36:55 +01:00
baldurk 1a05f4fc4a Forcibly refresh UI state after editing a shader or removing an edit 2016-02-21 16:10:46 +01:00
baldurk c35531c65f Only allow D3D11_BIND_SHADER_RESOURCE on depth display resources
* Not entirely sure if this is actually needed, but seems to fix a bug
  and I don't think it can do any harm.
2016-02-21 15:36:39 +01:00
baldurk 49669d676e Identify depth textures by depth format, not just having DSV flag 2016-02-21 15:36:05 +01:00
baldurk df1dc3368f Remove use of texture2D() 2016-02-21 14:37:04 +01:00
baldurk 3addd2ed38 Change srcStageMask on pipeline barriers to ALL_COMMANDS_BIT 2016-02-19 20:50:19 +01:00
baldurk 144a91ea97 Correctly handle sparsely-defined descriptor set layouts (Refs #176) 2016-02-18 17:32:51 +01:00
baldurk a15dcb4ded Update RenderDoc vulkan layer json to latest version numbers 2016-02-18 17:32:21 +01:00
baldurk 0e76c57540 Make sure to unwrap oldSwapchain in vkCreateSwapchainKHR (Refs #178) 2016-02-18 10:14:39 +01:00
baldurk 1be73d0ff7 Remove deleted file from MSVC projects 2016-02-17 13:59:01 +01:00
baldurk bf331422b1 Update to shipped vulkan headers 2016-02-17 13:37:36 +01:00
baldurk 154161e260 Bump version number to 0.28 2016-02-17 13:37:35 +01:00
baldurk 85fd83f55c Linux compile fixes (some apply to bad code on windows too) 2016-02-10 20:26:52 +01:00
baldurk 6de03e58f1 Update to glslang to latest
* Based on renderdoc branch with local modifications from upstream:
  https://github.com/baldurk/glslang/tree/renderdoc
* hash 0011d911d67ea3c029a11010ba6f20bbe5149ebc on renderdoc from
  103bef9d74d768f0690ed53f52681baead384d1e on master
2016-02-10 20:26:52 +01:00
baldurk 3db724294f Conditionally disable use of texelFetch() in shaders 2016-02-10 17:13:05 +01:00
baldurk 814dfddf0d Conditionally silence an assert on surface capabilities 2016-02-10 17:13:04 +01:00
baldurk c8ade743a2 Add function to check if running on AMD 2016-02-10 17:13:02 +01:00
baldurk a67f559308 Don't create quad write FS module just to delete it again 2016-02-10 17:13:01 +01:00