mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-08-03 10:45:36 +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>
140 lines
2.8 KiB
GLSL
140 lines
2.8 KiB
GLSL
#version 310 es
|
|
|
|
struct GammaTransferParams {
|
|
float G;
|
|
float A;
|
|
float B;
|
|
float C;
|
|
float D;
|
|
float E;
|
|
float F;
|
|
uint padding;
|
|
};
|
|
|
|
struct ExternalTextureParams {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
};
|
|
|
|
layout(binding = 2) uniform ExternalTextureParams_1 {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
} ext_tex_params;
|
|
|
|
uniform highp sampler2D arg_0_1;
|
|
void textureDimensions_ba1481() {
|
|
ivec2 res = textureSize(arg_0_1, 0);
|
|
}
|
|
|
|
vec4 vertex_main() {
|
|
textureDimensions_ba1481();
|
|
return vec4(0.0f);
|
|
}
|
|
|
|
void main() {
|
|
gl_PointSize = 1.0;
|
|
vec4 inner_result = vertex_main();
|
|
gl_Position = inner_result;
|
|
gl_Position.y = -(gl_Position.y);
|
|
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
|
|
return;
|
|
}
|
|
#version 310 es
|
|
precision mediump float;
|
|
|
|
struct GammaTransferParams {
|
|
float G;
|
|
float A;
|
|
float B;
|
|
float C;
|
|
float D;
|
|
float E;
|
|
float F;
|
|
uint padding;
|
|
};
|
|
|
|
struct ExternalTextureParams {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
};
|
|
|
|
layout(binding = 2) uniform ExternalTextureParams_1 {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
} ext_tex_params;
|
|
|
|
uniform highp sampler2D arg_0_1;
|
|
void textureDimensions_ba1481() {
|
|
ivec2 res = textureSize(arg_0_1, 0);
|
|
}
|
|
|
|
void fragment_main() {
|
|
textureDimensions_ba1481();
|
|
}
|
|
|
|
void main() {
|
|
fragment_main();
|
|
return;
|
|
}
|
|
#version 310 es
|
|
|
|
struct GammaTransferParams {
|
|
float G;
|
|
float A;
|
|
float B;
|
|
float C;
|
|
float D;
|
|
float E;
|
|
float F;
|
|
uint padding;
|
|
};
|
|
|
|
struct ExternalTextureParams {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
};
|
|
|
|
layout(binding = 2) uniform ExternalTextureParams_1 {
|
|
uint numPlanes;
|
|
uint doYuvToRgbConversionOnly;
|
|
mat3x4 yuvToRgbConversionMatrix;
|
|
GammaTransferParams gammaDecodeParams;
|
|
GammaTransferParams gammaEncodeParams;
|
|
mat3 gamutConversionMatrix;
|
|
} ext_tex_params;
|
|
|
|
uniform highp sampler2D arg_0_1;
|
|
void textureDimensions_ba1481() {
|
|
ivec2 res = textureSize(arg_0_1, 0);
|
|
}
|
|
|
|
void compute_main() {
|
|
textureDimensions_ba1481();
|
|
}
|
|
|
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
|
void main() {
|
|
compute_main();
|
|
return;
|
|
}
|