Commit Graph

10651 Commits

Author SHA1 Message Date
baldurk 267798b240 Add boolean vartype 2020-04-24 20:14:48 +01:00
baldurk 76a866a5c2 Fix vulkan postvs output with components 2020-04-24 20:14:47 +01:00
baldurk 4dc0d799db Add default child name for structs when generating buffer formatter 2020-04-24 20:14:47 +01:00
baldurk 129796e71e Add negative check for bindpoint index 2020-04-24 20:14:47 +01:00
baldurk 38efe4e6e0 SPIR-V matrix I/O parameters are column-major by default 2020-04-24 20:14:47 +01:00
baldurk 068660bb1d Give variables names based on their types
* This is common for constant buffers where the struct type may be named if the
  variable isn't
2020-04-24 20:14:47 +01:00
baldurk 83bbcc5b51 Add support for matrix, struct, component and array pixel inputs 2020-04-24 20:14:47 +01:00
baldurk 94e34534db Fix loading from matrix column pointer 2020-04-24 20:14:47 +01:00
baldurk 4da3238bfa Build our own shaderc since the vulkan SDK's is no longer static 2020-04-24 20:14:47 +01:00
baldurk 7560960a9d Use deterministic filenames for shader compilation 2020-04-24 20:14:47 +01:00
Aliya Pazylbekova 8edcccd1a7 Vk Pixel history: Refactor parameters for callbacks 2020-04-24 20:14:28 +01:00
baldurk c679610b12 Zero-initialise specialization constant data 2020-04-24 10:26:55 +01:00
Aliya Pazylbekova f8c5c2878b Vk pixel history: unbound fragment shader
Add support for unbound fragment shader.
2020-04-23 22:27:50 +01:00
baldurk 727ddfc672 Fix clang compilation 2020-04-23 19:48:38 +01:00
baldurk ffe8f54151 Fix size query for texel buffers 2020-04-23 19:14:09 +01:00
baldurk 92e04417d5 Add support for storage image load/store 2020-04-23 19:14:09 +01:00
baldurk 97665b2c30 Display resources in shader viewer tooltips properly 2020-04-23 19:14:09 +01:00
baldurk 9b9a7abb47 Don't cache PS inputs pipeline that varies often 2020-04-23 19:14:09 +01:00
baldurk 914268333d Ensure pipeline cache data actually reaches the driver 2020-04-23 19:14:09 +01:00
baldurk 18713f644e Implement OpImageQueryLod by faking derivatives on sample quad 2020-04-23 19:14:09 +01:00
baldurk 0a78a65ec2 Add explicit handling for all remaining unimplemented opcodes
* Some will have to be supported because they're not optional, some more are
  planned but are currently behind unsupported capabilities, and some are
  extensions that will probably never be implemented.
2020-04-23 19:14:08 +01:00
baldurk 76b21f7d8c Check that SPIR-V version and extensions are supported before tracing 2020-04-23 19:14:08 +01:00
baldurk 2efb2e67f1 Add dummy (for now) implementations of OpUConvert/OpSConvert 2020-04-23 19:14:08 +01:00
baldurk 31593f4373 Support SPIR-V 1.4 pointer comparison opcodes 2020-04-23 19:14:08 +01:00
baldurk 3470079472 Implement OpQuantizeToF16 2020-04-23 19:14:08 +01:00
baldurk 925b177bad Support Proj sampling variants with manual q divide 2020-04-23 19:14:08 +01:00
baldurk f506dcf395 Add support for storage buffer access 2020-04-23 19:14:08 +01:00
baldurk 0d1e0af9b1 Make sure all ShaderVariable values are initialised to 0 2020-04-23 19:14:08 +01:00
baldurk aae3a75f6e Add newly added variables to start of variables list
* But all variables added in a single step still remain in the order they're
  reported in as changes.
2020-04-23 19:14:08 +01:00
baldurk e90461c065 Fix incorrect check in DumpObject helper 2020-04-23 19:14:08 +01:00
Aliya Pazylbekova f63dd71221 Vulkan Pixel History: secondary command buffers
Also:
- support for choosing mip level and slice
- tests for secondary command buffers
- adds a callback around vkCmdExecuteCommands
- refactors pixel history occlusion callback into its own
callback. Allows processing fewer events later on, and getting colour
information separately.
- keep track of subpassContents for vkCmdBeginRenderPass (inline or
  secondary)
2020-04-23 19:13:42 +01:00
baldurk dfb2b2c025 Avoid using the non-array ShaderValue accessors
* These don't have 64-bit or 16-bit equivalents so will be harder to fix later
  when adding support for those bit widths
2020-04-22 20:40:15 +01:00
baldurk 222f28d953 Add support for glsl pack/unpack functions 2020-04-22 20:40:14 +01:00
baldurk 5e67f3d6b5 Support shader debugging and KHR_buffer_device_address without int64 2020-04-22 20:40:14 +01:00
baldurk 37c114b75e Avoid device-local memory for upload allocations. Closes #1816
* Although device-local memory would be faster for the allocations we need it
  for, it's also a limited resource and we may run out of memory trying to hold
  both the capture's allocations and our own. Only allocations that *must* be in
  device-local memory should be placed there.
2020-04-22 20:40:14 +01:00
baldurk 4e2cfa18b5 Add debug config option to do verbose logging of shader debugging 2020-04-22 20:40:14 +01:00
baldurk 621b9dfd1e Move some shader debug pipeline parameters out of spec constants
* While convenient, passing uv parameters that will probably be different every
  time via spec constants is not the best idea and will lead to many redundant
  pipelines. Instead we keep things that must be constant as spec constants as
  well as a few rarely varying things (texture dimension, operation) while
  moving more varying things to uniforms passed in a constant buffer.
* This means we require the imageGatherExtended feature to promote constant
  offsets to dynamic offsets, but this is a reasonable requirement.
2020-04-22 20:40:14 +01:00
baldurk f2e9447954 Compress shader cache blobs with zstd 2020-04-22 20:40:14 +01:00
baldurk ed799cb1e3 Serialise pipeline cache in vkshaders.cache 2020-04-22 20:40:14 +01:00
baldurk e034defb0e Add debug option to log verbosely on android process launch 2020-04-22 14:24:21 +01:00
baldurk b35de95602 Fix python3 warning about use of 'is not' for literal comparison 2020-04-22 14:02:19 +01:00
baldurk 9b0ac380f4 Record the total number of pixels run
* This can be useful for diagnostics - we expect this to be non-zero in most
  cases.
2020-04-22 10:39:20 +01:00
baldurk 6a6c86139b Don't test mod/rem operations with negative operands
* This is undefined in vulkan
2020-04-21 19:14:41 +01:00
baldurk e3d2852080 Add test of large query pools on vulkan 2020-04-21 17:09:33 +01:00
baldurk 3ef67d6647 Test passing NULL in object names/labels 2020-04-21 17:09:33 +01:00
baldurk 9accb4033b Test push constant range that applies to vertex and fragment stages 2020-04-21 17:09:33 +01:00
baldurk 660d696b58 Test that dirty pipelines can still be shader-edited properly 2020-04-21 17:09:33 +01:00
baldurk 66a9e00f3e Don't serialise D3D12_STREAM_OUTPUT_DESC.pBufferStrides if NumEntries==0
* This is true even if NumStrides is a high number, it's entirely ignored.
2020-04-21 17:09:33 +01:00
baldurk c6f43e81bf If no valid display has been fetched on linux, return no input supported 2020-04-21 17:09:33 +01:00
baldurk f57709366a Truncate resource names that are unreasonably long. Closes #1832 2020-04-21 17:09:33 +01:00