Commit Graph
8129 Commits
Author SHA1 Message Date
baldurk f9deead680 Add open-source nvapi release headers 2020-10-28 19:07:52 +00:00
baldurk 2c248935f6 Fix structured serialisation of specially handled structs
* Anything which has an explicit "If writing, set up element" rather than merely
  serialising directly.
* Also e.g. for ResourceIds, when structurising grabbing the ID of an object
  will get the live ID, so we need to get the original ID.
2020-10-28 15:25:01 +00:00
baldurk e734cfe077 Fix lazy generator not storing string database and user data
* We need this to properly serialise on some drivers.
2020-10-28 14:50:17 +00:00
baldurk fc6348cca6 Ensure any lazy arrays are fully populated before serialisation 2020-10-28 14:38:57 +00:00
baldurk 769f5d05da Fix issue where mapped memory updates weren't masked. Closes #2083
* After simplification memory that's only used for tiled resources would have a
  single interval with finish() == UINT64_MAX, which failed the iteration check.
2020-10-28 14:20:01 +00:00
baldurk 3d46e105a3 Compile fix on some compilers 2020-10-28 14:14:42 +00:00
baldurk 03b7229bad Support choosing multiview viewport in vertex debugging on vulkan 2020-10-28 13:34:08 +00:00
baldurk 40002634ad Fix order of operations error when shutting down remote replay 2020-10-28 12:08:36 +00:00
baldurk 6b67a6c13b Fix proxy serialisation of SDObject to set parent pointer correctly 2020-10-28 11:56:38 +00:00
baldurk 978d240ec6 Compile fixes 2020-10-28 09:41:54 +00:00
baldurk 6fbd8511bb Store parent pointer in SDObject 2020-10-27 15:15:20 +00:00
baldurk 7830f56689 Return string literals for more bitfield values
* If a bitfield is precisely equal to one known value, return a literal for it.
  Similarly for 0, for both bitfields and regular enums. This helps reduce the
  number of heap allocated strings generated while serialising.
2020-10-27 15:15:20 +00:00
baldurk c468dafedc Don't stringify ResourceIds in structured data
* Users should stringify the actual value themselves if so desired. This reduces
  the number of string allocations in the structured data since ResourceIds are
  common.
2020-10-27 15:15:19 +00:00
baldurk 935cb113ed Add new string type rdcinflexiblestr specifically for structured data
* This is a string type which heavily optimises for immutability and minimal
  storage. It only contains one pointer to the string data and always
  reallocates on modify. For compile-time literals it doesn't modify or
  allocate.
* On x64 we use the top bit in a tagged pointer to store a flag of whether it's
  heap or literal, on other platforms it uses a separate field (meaning another
  pointer sized value effectively, including padding).
* This is best for structured data which tends to use a lot of immutable strings
  for type/name information, and only a few for actual string data (which are
  only allocated once and aren't modified after that). Similarly we rarely want
  to know only the size of any of these strings, we want the whole string so not
  explicitly storing the size is not a big deal.
* Overall this reduces SDObject from 128 bytes to 80 bytes.
2020-10-27 15:15:19 +00:00
baldurk c58f3edafa Support lazy-generating structured data objects for large arrays
* For certain very large arrays it can be nice to defer generation of structured
  data until it's needed, since often maybe only a handful of elements may be
  needed (or commonly none at all).
2020-10-27 15:15:19 +00:00
baldurk 394896a3c9 Hide list of children completely in structured data
* This makes it easier to enforce object ownership, as well as gives us options
  for e.g. generating structure data on demand lazily.
2020-10-26 10:24:47 +00:00
baldurk 117e16041a Add an error message and don't add child process for invalid ident 2020-10-26 10:24:40 +00:00
baldurk 985ce847e4 Remove unused SSE vector from compressonator 2020-10-26 10:19:53 +00:00
baldurk e8f6156df3 Compile fixes in linux process handling 2020-10-26 10:19:42 +00:00
baldurk 7040032da7 Fix missing surface registers for headless/direct surfaces 2020-10-26 10:19:06 +00:00
baldurk 57aca86c98 Remove unused and redundant numChildren union member in SDObjectPODData 2020-10-23 14:19:13 +01:00
baldurk 8c05c44a75 Don't bind a range for buffers bound without range (offset/size == 0) 2020-10-22 15:39:12 +01:00
baldurk db7b260629 Fix wrong count being used in GL loop ending active queries 2020-10-22 15:38:58 +01:00
baldurk d503363279 Fix issues with MSAA quad overdraw overlays 2020-10-22 14:11:00 +01:00
baldurk 3a68721702 Allow repeated calls to CopyTex2DMSToArray on GL
* Normally the function creates its output to enforce storage (for texture
  views) but repeated calls would break that, so we only create when the output
  texture ID is 0.
2020-10-22 14:11:00 +01:00
baldurk 8e19fa7010 Don't rely on potentially stale cached pipeline state for IsOutput check 2020-10-22 14:11:00 +01:00
baldurk 806187f613 Save and load edited shaders as capture modifications
* When a shader edit is loaded with a capture, it's loaded as "pending" and not
  immediately applied.
2020-10-21 14:14:20 +01:00
baldurk 31bf9f4593 Don't mark commands as submitted if we didn't have a queue yet 2020-10-21 11:26:27 +01:00
baldurk 88748858c4 Don't add graphics binding usage for dispatches or vice-versa in D3D11 2020-10-21 10:06:43 +01:00
baldurk 632e9302b6 Cache whether chunks are from an allocator
* If chunks come from an allocator they can't be safely deleted because the
  allocator may have been reset and recorded over where these chunks were with
  other data. Fortunately we don't need to do anything to delete them, so
  storing the allocator status up front is sufficient.
2020-10-20 16:12:45 +01:00
baldurk 17e80ae9cd Fix forward references in LLVM constants block 2020-10-20 14:33:46 +01:00
baldurk ebafbdb184 Implement support for VK_EXT_shader_image_atomic_int64 2020-10-20 13:21:43 +01:00
baldurk bd36f07bce Implement support for VK_EXT_shader_atomic_float 2020-10-20 13:08:47 +01:00
baldurk d1574f4f42 Implement support for VK_EXT_image_robustness 2020-10-20 12:54:10 +01:00
baldurk 0c84eb255c Implement support for VK_KHR_shader_terminate_invocation 2020-10-20 12:44:25 +01:00
baldurk 965535560b Implement support for VK_KHR_copy_commands2 2020-10-20 12:44:25 +01:00
baldurk d1bc1c68dc Increase warning level on SPIR-V debugging source files 2020-10-20 12:44:24 +01:00
baldurk 4cdc46a5cf Update SPIR-V grammar and generated headers 2020-10-20 12:44:24 +01:00
baldurk b2746eede5 Update vulkan headers to 1.2.158 2020-10-20 12:44:24 +01:00
baldurk a95d51e28c Deliberately 'leak' winsock to avoid deadlock on shutdown. Closes #2079 2020-10-19 17:00:25 +01:00
baldurk 8cc414a8f6 Check for errors creating streamout query 2020-10-16 16:13:30 +01:00
baldurk 0049ed2e84 Compile fix for linux 2020-10-15 12:11:03 +01:00
baldurk f6c2d64b39 Fix pointer alias change detection in SPIR-V debugging 2020-10-15 11:59:28 +01:00
baldurk da5ce0e74c Escape and truncate any multiline strings in SPIR-V disassembly 2020-10-15 11:59:28 +01:00
baldurk cb2d19717f Allow debugging when SPV_KHR_non_semantic_info is used in shader 2020-10-15 11:59:28 +01:00
Eugen Brusilovskyy 5d38292c67 FIX: wrong array layer index passed to cube image array in debugger 2020-10-15 11:30:01 +01:00
baldurk 17a13654f2 Add better type hinting for extended dynamic state functions 2020-10-13 21:31:16 +01:00
baldurk a58bafc171 Remove unused legacy code 2020-10-13 21:31:16 +01:00
baldurk 4f06dedae7 Add query for whether extended instruction set exists 2020-10-13 21:31:16 +01:00
baldurk 78762cbd1b Pre-populated dynamic state at the start of partial command buffers 2020-10-13 21:31:16 +01:00