rendervulkan: Stop using unnormalized ycbcr samplers.
This is not allowed for ycbcr samplers.
This commit is contained in:
parent
73025b24e2
commit
ca09577632
2 changed files with 6 additions and 4 deletions
|
@ -70,7 +70,7 @@ void compositing_debug(uvec2 size, uvec2 coord) {
|
|||
}
|
||||
}
|
||||
|
||||
vec4 sampleLayer(sampler2D layerSampler, uint layerIdx, vec2 uv) {
|
||||
vec4 sampleLayer(sampler2D layerSampler, uint layerIdx, vec2 uv, bool unnormalized) {
|
||||
vec2 coord = ((uv + u_offset[layerIdx]) * u_scale[layerIdx]);
|
||||
vec2 texSize = textureSize(layerSampler, 0);
|
||||
|
||||
|
@ -80,13 +80,16 @@ vec4 sampleLayer(sampler2D layerSampler, uint layerIdx, vec2 uv) {
|
|||
return vec4(0.0f, 0.0f, 0.0f, border);
|
||||
}
|
||||
|
||||
if (!unnormalized)
|
||||
coord /= texSize;
|
||||
|
||||
return textureLod(layerSampler, coord, 0.0f);
|
||||
}
|
||||
|
||||
vec4 sampleLayer(uint layerIdx, vec2 uv) {
|
||||
if ((c_ycbcrMask & (1 << layerIdx)) != 0)
|
||||
return srgbToLinear(sampleLayer(s_ycbcr_samplers[layerIdx], layerIdx, uv));
|
||||
return sampleLayer(s_samplers[layerIdx], layerIdx, uv);
|
||||
return srgbToLinear(sampleLayer(s_ycbcr_samplers[layerIdx], layerIdx, uv, false));
|
||||
return sampleLayer(s_samplers[layerIdx], layerIdx, uv, true);
|
||||
}
|
||||
|
||||
void main() {
|
||||
|
|
|
@ -1228,7 +1228,6 @@ retry:
|
|||
.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||
.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
|
||||
.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
|
||||
.unnormalizedCoordinates = VK_TRUE,
|
||||
};
|
||||
|
||||
vkCreateSampler( device, &ycbcrSamplerInfo, nullptr, &ycbcrSampler );
|
||||
|
|
Loading…
Reference in a new issue