baldurk
133b8a41b9
Fix handling of column-major matrices in buffer viewer. Closes #1848
2020-04-27 13:46:58 +01:00
baldurk
a7b4fe9167
Don't clamp length against buffer size after applying offset
...
* If we have a given view length that fits in the buffer, we shouldn't apply the
offset before clamping. Instead we apply the offset on the buffer length if
that's what we're using as our size.
2020-04-27 13:03:47 +01:00
baldurk
105f0e4e9f
Fix GL handling of matrix parameters to specify :col instead of :row
...
* In GL matrices are also split column-wise
2020-04-24 20:51:32 +01:00
baldurk
70256217fe
Handle diverging/converging control flow in pixel shader
2020-04-24 20:14:48 +01:00
baldurk
320b1cddd4
Fix compilation on stable builds with constant settings
2020-04-24 20:14:48 +01:00
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