diff --git a/render/vulkan/shaders/output.frag b/render/vulkan/shaders/output.frag index b9cfcaaa2..5b952fcff 100644 --- a/render/vulkan/shaders/output.frag +++ b/render/vulkan/shaders/output.frag @@ -72,6 +72,9 @@ void main() { rgb = mat3(data.matrix) * rgb; + if (OUTPUT_TRANSFORM != OUTPUT_TRANSFORM_IDENTITY) { + rgb = max(rgb, vec3(0)); + } if (OUTPUT_TRANSFORM == OUTPUT_TRANSFORM_LUT_3D) { // Apply 3D LUT vec3 pos = data.lut_3d_offset + rgb * data.lut_3d_scale; diff --git a/render/vulkan/shaders/texture.frag b/render/vulkan/shaders/texture.frag index b7b78b19a..57d2d049c 100644 --- a/render/vulkan/shaders/texture.frag +++ b/render/vulkan/shaders/texture.frag @@ -66,6 +66,9 @@ void main() { rgb = in_color.rgb / alpha; } + if (TEXTURE_TRANSFORM != TEXTURE_TRANSFORM_IDENTITY) { + rgb = max(rgb, vec3(0)); + } if (TEXTURE_TRANSFORM == TEXTURE_TRANSFORM_SRGB) { rgb = srgb_color_to_linear(rgb); } else if (TEXTURE_TRANSFORM == TEXTURE_TRANSFORM_ST2084_PQ) {