Commit Graph

10636 Commits

Author SHA1 Message Date
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
baldurk 75da714a85 Avoid asserts when copying buffers 2020-04-21 17:09:32 +01:00
baldurk 068f4998c7 Fix buffer viewer export to handle pagination. Closes #1837 2020-04-21 17:09:32 +01:00
baldurk 86c5c70a13 Fix packed format (uintten/unormten) use in the buffer viewer 2020-04-21 17:09:32 +01:00
baldurk a3dc3dde2b Use mesh property format when displaying secondary data in buffer view 2020-04-21 17:09:32 +01:00
baldurk 8ee6e43ed6 Check that we can render secondary mesh data with only two components
* We need to be sure that we don't accidentally read RGB anyway.
2020-04-21 17:09:24 +01:00
baldurk 6042c500bc Ensure we don't read out of bounds displaying meshes on vulkan
* The whole stride of a vertex binding must be in bounds for any attributes in
  it to be in bounds, so we adjust the attribute offset to put padding at the
  start of the strided segment wherever possible.
2020-04-21 12:22:42 +01:00
baldurk e216fa7e12 Print which physical device is used to create the device on replay 2020-04-20 16:52:12 +01:00
baldurk 0b8ab2f0e9 Fix Dref opcode fetching which should output scalar types 2020-04-20 16:51:58 +01:00
baldurk aeb750af42 Don't read D3D12_STREAM_OUTPUT_DESC::NumStrides if NumEntries is 0 2020-04-20 16:51:05 +01:00
baldurk 207852bb15 Disable linked shaderc as vulkan SDK copy now links /MTD
* We'll probably want to add support for optionally compiling in a linked
  shaderc that we build ourselves now.
2020-04-20 13:25:02 +01:00
baldurk 6aec92840f Integrate RGA 2.3.1 and add support for Navi 14 2020-04-20 13:24:28 +01:00
baldurk c572ad2ed8 Fix HLSL edit stub generation with system values 2020-04-20 12:00:37 +01:00
baldurk d15b0a3c3a Default initialise TextureSwizzle4 with RGBA swizzle 2020-04-20 11:14:03 +01:00
baldurk f2d69e9f9e Fix handling of ResourceMinLODClamp for cubemap textures on D3D12 2020-04-20 11:05:40 +01:00
baldurk 058f437974 Use the correct VarType when creating resource source mappings 2020-04-20 11:05:25 +01:00