mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-13 08:36:08 +00:00
This introduces a new field 'doYuvToRgbConversionOnly' in ExternalTextureParams to have the WGSL only do yuv->rgb conversion for better performance. User studies shows that users don't really care about the Gamma difference between 2.4 and 2.2. https://source.chromium.org/chromium/chromium/src/+/main:ui/gfx/color_space.cc;l=1022;drc=a1dbb594a6741a400db35fe3678e77bad2504ea4 Bug: dawn:1082 Bug: dawn:1466 Change-Id: I61c0fe65c5969d8a61c267c202c8dd64c259ed8a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92901 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct GammaTransferParams {
|
|
float G;
|
|
float A;
|
|
float B;
|
|
float C;
|
|
float D;
|
|
float E;
|
|
float F;
|
|
uint padding;
|
|
};
|
|
|
|
struct ExternalTextureParams {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
float3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
float3x3 gamutConversionMatrix;
|
|
};
|
|
|
|
void textureDimensions_ba1481(texture2d<float, access::sample> tint_symbol_1) {
|
|
int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
|
|
}
|
|
|
|
struct tint_symbol {
|
|
float4 value [[position]];
|
|
};
|
|
|
|
float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
|
|
textureDimensions_ba1481(tint_symbol_2);
|
|
return float4(0.0f);
|
|
}
|
|
|
|
vertex tint_symbol vertex_main(texture2d<float, access::sample> tint_symbol_3 [[texture(0)]]) {
|
|
float4 const inner_result = vertex_main_inner(tint_symbol_3);
|
|
tint_symbol wrapper_result = {};
|
|
wrapper_result.value = inner_result;
|
|
return wrapper_result;
|
|
}
|
|
|
|
fragment void fragment_main(texture2d<float, access::sample> tint_symbol_4 [[texture(0)]]) {
|
|
textureDimensions_ba1481(tint_symbol_4);
|
|
return;
|
|
}
|
|
|
|
kernel void compute_main(texture2d<float, access::sample> tint_symbol_5 [[texture(0)]]) {
|
|
textureDimensions_ba1481(tint_symbol_5);
|
|
return;
|
|
}
|
|
|