diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp index fd3e391ff..3a15f8eff 100644 --- a/src/rendervulkan.cpp +++ b/src/rendervulkan.cpp @@ -3772,7 +3772,7 @@ std::optional vulkan_composite( struct FrameInfo_t *frameInfo, std::sh nisFrameInfo.layers[0].scale.x = 1.0f; nisFrameInfo.layers[0].scale.y = 1.0f; - cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, nisFrameInfo.layerCount, nisFrameInfo.ycbcrMask())); + cmdBuffer->bindPipeline( g_device.pipeline(SHADER_TYPE_BLIT, nisFrameInfo.layerCount, nisFrameInfo.ycbcrMask(), 0u, nisFrameInfo.colorspaceMask(), outputTF )); bind_all_layers(cmdBuffer.get(), &nisFrameInfo); cmdBuffer->bindTarget(compositeImage); cmdBuffer->uploadConstants(&nisFrameInfo); diff --git a/src/shaders/composite.h b/src/shaders/composite.h index 884da244a..5db5dccf6 100644 --- a/src/shaders/composite.h +++ b/src/shaders/composite.h @@ -176,7 +176,7 @@ vec4 sampleLayerEx(sampler2D layerSampler, uint offsetLayerIdx, uint colorspaceL color = sampleRegular(layerSampler, coord, colorspace); } // JoshA: AMDGPU applies 3x4 CTM like this, where A is 1.0, but it only affects .rgb. - color.rgb = vec4(color.rgb, 1.0f) * u_ctm[offsetLayerIdx]; + color.rgb = vec4(color.rgb, 1.0f) * u_ctm[colorspaceLayerIdx]; color.rgb = apply_layer_color_mgmt(color.rgb, offsetLayerIdx, colorspace); return color;