The state tracking will not be complete during loading and can cause a crash trying to rebind the current pipeline after filling the image with the discard pattern
Do not use the "VkGraphicsPipelineCreateInfo" because this does not include the dynamic state.
Fixes Mesh Output being incorrect when dynamic state for vertex input is used.
D3D12 ERROR: ID3D12CommandList::CopyTextureRegion: D3D12_SUBRESOURCE_FOOTPRINT::RowPitch must be a multiple of 256 (aka. D3D12_TEXTURE_DATA_PITCH_ALIGNMENT) and greater or equal to the pitch implied by the width.[ RESOURCE_MANIPULATION ERROR #855: COPYTEXTUREREGION_INVALIDDSTROWPITCH]
Only increase the number of bytes to read when crossing an execute boundary and doing a partial execute.
Fixes out of bounds access on the source argument buffer when going from a complete execute to the next complete execute i.e. selecting the draw actions in sequence in the Event Browser
The argument buffers are used fully used with no spare bytes
The python test iterates over every draw to check the replay has a valid output target count
This verifies the replay did not crash when replaying ExecuteIndirect with multiple draws and an argument buffer with no spare bytes
Add "-Wno-deprecated-declarations"
util/test/demos/3rdparty/fmt/core.h:378:30: error: 'char_traits<fmt::internal::char8_type>' is deprecated: char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 18, so please migrate off of it. [-Werror,-Wdeprecated-declarations]
: data_(s), size_(std::char_traits<Char>::length(s)) {}
^
util/test/demos/3rdparty/fmt/format.h:580:9: note: in instantiation of member function 'fmt::basic_string_view<fmt::internal::char8_type>::basic_string_view' requested here
: basic_string_view<internal::char8_type>(
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/include/c++/v1/__string/char_traits.h:79:8: note: 'char_traits<fmt::internal::char8_type>' has been explicitly marked deprecated here
struct _LIBCPP_DEPRECATED_("char_traits<T> for T not equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in LLVM 18, so please migrate off of it.")
* This seems to crash if no pipeline is bound when SetViewInstanceMask() is
called. We can't make this completely conditional and still be legal, but at
least we can avoid triggering it if view instancing isn't being used anyway.
Use D3D12_PLACED_SUBRESOURCE_FOOTPRINT Offset parameter to get to within 16KB of the destination buffer byte offset.
Set the copy texture footprint to be a 1D Texture with a width to be equal to the remaining byte offset / pixel_byte_size + 1.
Use a destination X of the remaining byte offset / pixel_byte_size
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.