[vk] Implement Shader Read Barrier #2671
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "Ribbit/ribbitvulkanadditions:shaderreadbarrier"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adding the shader read barrier keeps every render/compute/transfer write visible before the image is sampled, so it prevents the “read-before-writes-finish” hazards. Without it you can get random stale frames, flickering post process passes, partially updated HUD textures, and corrupted depth-to-color conversions especially in scenes that render into an offscreen image and immediately feed that image to a shader (reflections, bloom, dynamic resolution, depth visualizers, etc.). This fix makes those R2T chains deterministic again across all Vulkan drivers.
94e512e4bc
806c26857fb41f131670
to8b210fd7a4
8b210fd7a4
toab90bc74e0
@ -64,6 +64,7 @@ void MaxwellDMA::Launch() {
// TODO(Subv): Perform more research and implement all features of this engine.
const LaunchDMA& launch = regs.launch_dma;
ASSERT(launch.interrupt_type == LaunchDMA::InterruptType::NONE);
ASSERT(launch.data_transfer_type == LaunchDMA::DataTransferType::NON_PIPELINED);
rebase fail
@ -156,6 +157,8 @@ void MaxwellDMA::Launch() {
}
void MaxwellDMA::CopyBlockLinearToPitch() {
UNIMPLEMENTED_IF(regs.launch_dma.remap_enable != 0);
rebase fail
ab90bc74e0
tocc28b585e3
Git commands are denying me access to edit this for some reason so idk how to resolve it so I just updated my branch instead
cc28b585e3
toefda6ed9a6
Fixed my mistake earlier so it wont conflict now