Commit Graph

11591 Commits

Author SHA1 Message Date
baldurk 1ceeb159b7 Add lazy-populating item model for SDObjects
* We also add intermediate paging nodes for large arrays to ease expansions
2020-10-27 15:15:20 +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 39f4e82641 Add test of performance with large descriptor sets 2020-10-27 14:04:45 +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 8a4183ae64 Add missing <QRegularExpression> header 2020-10-23 18:16:42 +01:00
baldurk 3d93b7bb6c Add missing override statements 2020-10-23 18:01:05 +01:00
baldurk 57aca86c98 Remove unused and redundant numChildren union member in SDObjectPODData 2020-10-23 14:19:13 +01:00
baldurk 369120cddf Link @1234 type text to EIDs in the comments viewer 2020-10-23 13:57:38 +01:00
baldurk 9779c56333 Ensure edited shaders mark a capture as modified for saving 2020-10-23 13:57:38 +01:00
baldurk 4017dbca99 Add Kevin McCullough to credits docs page 2020-10-23 13:57:38 +01:00
baldurk cf8e8a15fe Test dimension fetching in D3D12 shader debugging with NULL desc struct 2020-10-22 16:02:59 +01:00
baldurk 5cd83365a8 Add basic texture sampling tests to D3D11 shader debug tests 2020-10-22 15:48:30 +01:00
baldurk a83485d14c Test that counters and mesh output still work even if in use in capture 2020-10-22 15:40:15 +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 8bdd9585f5 Test D3D discards with NULL region or rects 2020-10-22 15:10:17 +01:00
baldurk ec73718cf0 Test that overlays work on D3D12 with no viewport or scissor bound 2020-10-22 14:48:33 +01:00
baldurk 3f8fb1e1b6 Add MSAA case to overlay tests 2020-10-22 14:11:01 +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 298e33fc98 Ignore brew update errors in CI builds 2020-10-21 21:51:41 +01:00
baldurk 26f680f632 Check that sampler updates to immutable sampler descriptors are ignored 2020-10-21 14:57:42 +01:00
baldurk 53fc6ba089 Add test that feature level 9.x programs can be captured on D3D11 2020-10-21 14:36:16 +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 75c3156286 Add note that python scripting on Android is unreliable and unsupported
* It may work since the python scripting is generally not Android specific, but
  Android itself is quite likely going to cause problems that are out of scope.
2020-10-21 10:24:35 +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 804f659e8c Only warn if an image is seemingly reported as supported
* Some drivers return VK_SUCCESS even for formats that aren't supported.
2020-10-19 17:44:37 +01:00
baldurk fc976d2d39 Set depthBounds feature properly so it can be checked for support 2020-10-19 17:44:11 +01:00
baldurk c56e1f0ae4 Don't enumerate GPUs in child process helper 2020-10-19 17:43:58 +01:00
baldurk a95d51e28c Deliberately 'leak' winsock to avoid deadlock on shutdown. Closes #2079 2020-10-19 17:00:25 +01:00