mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
gallivm: Fix subsampled format sampling under Vulkan
Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24295>
This commit is contained in:
parent
1280cf5b2a
commit
c7914a84e9
1 changed files with 18 additions and 6 deletions
|
|
@ -367,12 +367,18 @@ uyvy_to_rgba_aos(struct gallivm_state *gallivm,
|
|||
LLVMValueRef i)
|
||||
{
|
||||
LLVMValueRef y, u, v;
|
||||
LLVMValueRef r, g, b;
|
||||
LLVMValueRef rgba;
|
||||
|
||||
uyvy_to_yuv_soa(gallivm, n, packed, i, &y, &u, &v);
|
||||
yuv_to_rgb_soa(gallivm, n, y, u, v, &r, &g, &b);
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, r, g, b);
|
||||
|
||||
if (gallivm->texture_descriptor) {
|
||||
/* Vulkan expects us to pack raw data. */
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, u, y, v);
|
||||
} else {
|
||||
LLVMValueRef r, g, b;
|
||||
yuv_to_rgb_soa(gallivm, n, y, u, v, &r, &g, &b);
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, r, g, b);
|
||||
}
|
||||
|
||||
return rgba;
|
||||
}
|
||||
|
|
@ -408,12 +414,18 @@ yuyv_to_rgba_aos(struct gallivm_state *gallivm,
|
|||
LLVMValueRef i)
|
||||
{
|
||||
LLVMValueRef y, u, v;
|
||||
LLVMValueRef r, g, b;
|
||||
LLVMValueRef rgba;
|
||||
|
||||
yuyv_to_yuv_soa(gallivm, n, packed, i, &y, &u, &v);
|
||||
yuv_to_rgb_soa(gallivm, n, y, u, v, &r, &g, &b);
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, r, g, b);
|
||||
|
||||
if (gallivm->texture_descriptor) {
|
||||
/* Vulkan expects us to pack raw data. */
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, u, y, v);
|
||||
} else {
|
||||
LLVMValueRef r, g, b;
|
||||
yuv_to_rgb_soa(gallivm, n, y, u, v, &r, &g, &b);
|
||||
rgba = rgb_to_rgba_aos(gallivm, n, r, g, b);
|
||||
}
|
||||
|
||||
return rgba;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue