1000 drawcalls of 1 instance of 1 triangle
1 drawcall of 1000 instances of 1 triangle
Python tests verify the count of modifications is correct, the modifications are self-consistent and the picked texture value matches the final modifications tex after value
Load buffer address from push constants as a uvec2 and bitcast to a pointer
Load vec4 from the buffer address pointer
Bitcast uint2 address to a pointer and load from the pointer
OpPtrAccessChain : float[] : ArrayStride 4
OpPtrAccessChain : float[] : ArrayStride 8
OpPtrAccessChain : float[] : ArrayStride 12
Convert u64 address to a pointer and load from the pointer
Convert u64 address to a pointer and back to a u64 address, load from the address
Arithmetic on a u64 address then convert u64 address to a pointer and load from the pointer
Generate a u64 address using arithmetic on two u32 values and load from the address
* Previously MRT draws were reduced to a single RT with the pixel
history color target bound, which meant shader output was always
showing the results for RT0 rather than the target requested.
* Shader-out and post-mod passes of the per fragment callback have been
changed to keep all RTs bound and replace the history target into the
correct slot. The RenderTargetWriteMask is used to mask out all writes
to everything but the history target.
* The pixel history fixed color write shader has been changed to
provide 8 variations, each of which writes to only one of the possible
RTs. This prevents the other targets from being polluted by unintended
writes and fixes the validation warnings about shaders writing to RTs
that will not be bound.
* Unused render target index was removed from the occlusion callback.
Added logic to the entry point RENDERDOC_CreateRemoteServerConnection to shutdown the socket used to connect to a remote device when the function is used to test a connection (IRemoteServer **rend is null.) This previously created a handle leak, visible as accumulating /device/afd/ file handles on Windows.
Added logic to the Windows specialization of Process::LaunchProcess so it will close two handles: hChildStdError_Rd, and hChildStdOutput_Rd if the handles were created successfully but the process failed to launch. Previously these would accumulate during a remote probe for Android devices if ADB was not present or otherwise failed to launch.
* When using dynamic rendering we were falling through if we didn't find the
image as an attachment as we expected to, but in the case of direct stores we
don't expect to find it so we should return early rather than crashing trying
to look up a non-existent renderpass object.
Fixes a problem if a window creates a different window whilst loading a layout and the layout does not contain the second window i.e.
Loading a layout which contains "Mesh Viewer" will create "Event Browser" window from code. If the layout does not contain "Event Browser" then the "Event Browser" window would get parented to the main window and displayed incorrectly when the main window is shown.
* Installing the Android server on certain devices will not grant
'force-queryable' permissions, necessary for capture layer
discovery for API>=30. Reinstalling a second time fixes this
issue. With this change, the 'force-queryable' attribute is
checked post-install. If the check fails, it prompts a second
installtion attempt.
* Solution tested on:
- OPPO find X6, Android 13 (affected device)
- Google Pixel 6 and 7, Android 13
- SM-G930F, Android 8
Return DXGI_ERROR_UNSUPPORTED if try to create tiled resources
from CreateBuffer(), CreateTexture2D(), CreateTexture2D1()
Return D3D11_TILED_RESOURCES_NOT_SUPPORTED in CheckFeatures() with D3D11_FEATURE_D3D11_OPTIONS1
CreateTexture2D(), CreateTexture2D1(), CreateBuffer() should fail
CheckFeatureSupport() with D3D11_FEATURE_DATA_D3D11_OPTIONS1 or D3D11_FEATURE_DATA_D3D11_OPTIONS2 should return D3D11_TILED_RESOURCES_NOT_SUPPORTED
* Performing pixel history on an MSAA depth target caused a memory
stomp due to the depth and stencil copies being mis-identified as a
4-component operation, stomping the following 12 bytes. For the depth,
this stomped the stencil and the following padding, but when the
missing stencil copy was added in 4815ada it stomped
dsWithoutShaderDiscard as well. This triggered an assert due to a clear
event appearing to have frags associated with it.
* Add missing resource transitions for the dispatch copy to fix
validation issues encountered while running the test.
* Adjust the MSAA copy path to use the second channel for stencil to
fix copies failing to output anything, which manifested as the fragment
only showing one primitive without correct output data.
Check the post mod stencil at pixel location 110,100
Check the post mod stencil is unknown at pixel location 275, 260 for fragment zero of a multi-fragment event
Validate that in a fragment event the postMod stencil value should be unknown (-1 or -2)
This test validates the code change in 4815adaa83
Check the post mod stencil at pixel location 110,100
Check the post mod stencil is unknown at pixel location 275, 260 for fragment zero of a multi-fragment event
Validate that in a fragment event the postMod stencil value should be unknown (-1 or -2)
Disabled warnings 4189, 4324 for vk_test.cpp
4189: 'identifier' : local variable is initialized but not referenced
4324: 'struct_name' : structure was padded due to __declspec(align())
because of warnings in vk_mem_alloc.h
* No rendertarget was bound to the primitive ID generating draw
because rts is empty in draws without a rendertarget bound in the base
draw. Setting rts[0] was presumably stomping memory instead in this
case.
* Included is a fix for validation layer error thrown when reproducing
the problem, in D3D12ColorAndStencilCallback during a Pre/PostDispatch
CopyPixel uses the value of m_SavedState but was not set. In the case
of rpFlags, the value was uninitialized because D3D12RenderState does
not include it in its constructor. That caused an invalid resource
transition to be issued and was fortunately caught by the debug layer,
otherwise it was thus far invisible when running without debug on.