Commit Graph

10783 Commits

Author SHA1 Message Date
Aliya Pazylbekova 08cf503eea Vk Pixel History: Small fixes + more tests
- For counting the number of fragments, also need to disable the depth
  bounds test, since we are not initializing the depth value currently
- Reset depth to 0.0f for shader out, and set it to always pass. So that
  we can get depth values from just one fragment.
- Initialize premod value for individual fragment events. This is not
  surfaced in the UI, but available from the python API and checked in
  tests.
2020-05-13 18:07:11 +01:00
baldurk 0b6c1c14b4 Add Steve Karolewics to credits document 2020-05-12 19:04:57 +01:00
baldurk bfcc484a7c Add tests of drawcall variants 2020-05-12 19:04:57 +01:00
baldurk e9b92a5ca7 Fix handling of base vertex in D3D11. Closes #1862 2020-05-12 19:04:57 +01:00
baldurk a8f1bc3881 Fix handling of index/instance/vertex offsets in vulkan shader debugging 2020-05-12 19:04:57 +01:00
baldurk 8643b01200 Display type name of other exceptions in failures 2020-05-12 19:04:57 +01:00
Aliya Pazylbekova 362d523399 Vulkan: fix usage based on shaders
This was based on an example where there is:
eid 1: vkCmdDispatch (used image as ssbo)
eid 2: vkCmdDraw (used image in FBO)
eid 3: vkCmdDraw (used image in FBO)

Image usage added CS_RWResource to draws in eid 2 and eid 3,
since a compute pipeline with the compute shader from eid 1
was still bound.
2020-05-12 19:04:36 +01:00
Steve Karolewics 65a4474fe8 Turn on D3D12 shader debugging by default. Closes #1771 2020-05-12 19:04:17 +01:00
gauthier 4380bf68e6 Fix relative path directory of capture creation 2020-05-12 19:04:06 +01:00
baldurk da2af69671 Add support for specifying strip restart value in D3D12 PSOs 2020-05-11 18:04:23 +01:00
baldurk 79c47ff91e Ignore bound index buffer for non-indexed draws, apply vertexOffset 2020-05-11 18:04:22 +01:00
baldurk 3bd09bd4a9 Fix applying offset wrongly on unclamped length 2020-05-11 18:04:22 +01:00
baldurk b8f83fca4c Add helper for blitting to swapchain in demos
* This isn't needed for testing but it's convenient to get simple window output
  even when we need to be writing to an F32 target
2020-05-11 18:04:22 +01:00
baldurk 49d6f205e9 Add padding for buffers where matrixByteStride needs it. Closes #1874 2020-05-11 18:04:22 +01:00
baldurk 7045e241e2 Specify row_major on struct members. Closes #1873 2020-05-11 18:04:22 +01:00
Steve Karolewics f9b86f3a82 Fix broken D3D shader linkage test cases
The rules for merging semantics into an array were not strict enough.
If either the type, interpolation mode, or size is different, or if it
is not using a register's x component, then we can't combine it. Also,
the rules for marking a semantic as array length 1 were too strict,
resulting in some semantics packing into other registers incorrectly.
2020-05-11 18:04:10 +01:00
Steve Karolewics 4c7f30e690 Created a D3D11 version of the shader linkage zoo test 2020-05-11 18:04:10 +01:00
Jake Turner ed45d15d21 Fix unknown warning "no-deprecated-copy" on Apple
Compile fix for MacOS Catalina
2020-05-11 18:04:00 +01:00
Jake Turner d100c6c622 Include "QEvent"
Compile fix for MacOS Catalina
2020-05-11 18:04:00 +01:00
baldurk 6e27f8a54d Check that dll is loaded before keeping it loaded 2020-05-08 21:14:20 +01:00
baldurk 7ddc24e13d Force on dynamic states we want in pixel history, to simplify handling
* This also fixes a case where pipelines with dynamic stencil masks wouldn't
  have the masks properly set for stencil counting and we wouldn't get shader
  output properly.
2020-05-08 20:43:25 +01:00
baldurk 1ad2cf0905 Handle opengl dvecX / dmatX types in buffer formatter 2020-05-08 20:43:25 +01:00
baldurk 3effd6b7fe Add copy operator for VkGraphicsPipelineCreateInfo helper 2020-05-08 20:43:25 +01:00
baldurk 36bae2b792 Mark secondaries as submitted so we don't leak secondary command buffers 2020-05-08 20:43:25 +01:00
baldurk c8c5eca0a9 Fix typo in shader debug zoo test 2020-05-08 20:43:25 +01:00
baldurk 33eb7cf694 Enable indexTypeUint8 feature properly 2020-05-08 20:43:25 +01:00
baldurk c7719f6b61 Keep nvoglv64.dll resident and prevent it from being unloaded 2020-05-08 20:43:25 +01:00
baldurk b83e7516c5 Handle busted debug info coming back from FXC for arrays
* This seems to only happen in SM5.1 builds for some reason, if an array has 0
  length and 1 stride then we try to auto-calculate the stride and length when
  needed in structs.
2020-05-08 20:43:25 +01:00
baldurk d0385567bf Fix tests referring to SigParameter.compType 2020-05-08 20:43:25 +01:00
Steve Karolewics ef58d7e1f8 Extend info in accessed resources panel in the shader viewer 2020-05-08 20:43:04 +01:00
baldurk 8638dddb84 Allow rdocself to register its vulkan layer 2020-05-07 22:46:42 +01:00
baldurk f7f3b7867a Only transition image and create command buffer if we have to init it
* This means for the case where the image doesn't need any initial state reset,
  we can skip the command buffer and the transition back and forth
2020-05-07 22:46:42 +01:00
baldurk 3d73f214cb Flush queue inside ApplyInitialContents instead of outside 2020-05-07 22:46:42 +01:00
baldurk e902cc8ae4 Add missing filter file for pixel history 2020-05-07 22:46:42 +01:00
Benson Joeris 6b34b9d2fb Make assert on image oldLayout less strict 2020-05-07 22:46:42 +01:00
baldurk 0233d51f71 Pad out block compressed proxy textures to 4x4 multiple on D3D11 2020-05-07 22:46:41 +01:00
baldurk 90c10ea1fc Handle boolean inputs in vulkan shader parameters
* We change to use VarType instead of CompType for signature parameters which
  allows us to represent different types of variables beyond just
  unsigned/signed integer and float.
2020-05-07 22:46:41 +01:00
Aliya Pazylbekova c70929d40a Vk Pixel History: misc fixes incl. fragment count
- Filter events that don't match image view range
- Leave some tests in the original state. Disable depth test and write,
  this causes the individual fragments that failed the depth test to
  show up, but the post modification value for them will be accurate.
- Fix a couple of things: delete TestsFailedCallback, and fix the
  padding
2020-05-07 22:46:19 +01:00
baldurk d0bd2e8da2 Fix calculation of number of rows in block DDS formats. Closes #1870
* The number of rows should be the ceiling of the 4-row number, since any
  overlap becomes a whole extra row of blocks.
2020-05-07 12:37:06 +01:00
baldurk ec0cb41c17 Fix vulkan tests looking for old variable name 2020-05-07 12:36:25 +01:00
baldurk 986fcddc9f When patching descriptors into set, check limits aren't exceeded
* This would be quite an edge case in itself if our added descriptors pushed it
  over the limit, but this is much more likely to happen on drivers where
  update-after-bind descriptor sets have much higher limits than normal
  descriptor sets. We cannot safely use update-after-bind descriptors, so
  instead we check to see if the limits are exceeded and bail out.
2020-05-07 11:11:19 +01:00
baldurk 3006e05d26 Add some marker regions to pixel history 2020-05-06 19:36:14 +01:00
baldurk 9c42e886ae Pass boundaries don't have any sub-draw modifications, same as clears 2020-05-06 19:35:50 +01:00
baldurk 343944db61 Fix anisotropy being lost when applying bias to sampler 2020-05-06 19:35:50 +01:00
baldurk 863636d243 Reset the list of replaced resources when closing a capture 2020-05-06 19:35:50 +01:00
baldurk 57168d36ad Don't add VkPhysicalDeviceVulkan12Features to pNext chain
* Its presence makes it invalid to have any of the components, rather than
  trying to merge any of them that might be present we can instead just add the
  individual VkPhysicalDeviceBufferDeviceAddressFeatures which is still legal.
2020-05-06 19:35:50 +01:00
baldurk 9d67549407 When enabling API validation register khronos validation layer too 2020-05-06 19:35:50 +01:00
baldurk 25ba64a085 Give better names to anonymous/unnamed variables
* With GLSL anonymous blocks the variable doesn't get a name, but the type does
  get a meaningful name - use that to name the variable.
2020-05-06 19:35:50 +01:00
baldurk 417dc91925 Set the correct number of columns for packed formats in buffer view 2020-05-06 19:35:50 +01:00
Aliya Pazylbekova 41b911d1d0 Vk Pixel History: MSAA depth/stencil copy, shader out
Use a separate compute shader module for MSAA copy, and output
directly into the destination buffer instead of creating
staging resources.

Support case where there is no depth stencil attachment to get post mod
values in per fragment reporting. Previously used the original
framebuffer that might not have had depth/stencil view, so couldn't
count the fragments. Now use the sub image.

To get the post mod color, we need to blend with the premod color, so
we use vkCmdCopyImage to copy from the original image.
2020-05-06 19:35:25 +01:00