Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit e6ab998

Browse files
egdanielSkia Commit-Bot
authored andcommitted
Revert "added support for sk_Dimensions to SkSL"
This reverts commit 9335c28. Reason for revert: breaking vulkan and maybe metal in gold Original change's description: > added support for sk_Dimensions to SkSL > > Bug: skia: > Change-Id: I5f6a9941822b7b4a3ad85b22b1bcd31d58320f90 > Reviewed-on: https://skia-review.googlesource.com/146640 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> TBR=bsalomon@google.com,ethannicholas@google.com Change-Id: I5e9dcfffd118ef125afb7b7792f16cb51dd779a3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/148680 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
1 parent 13df981 commit e6ab998

23 files changed

+107
-176
lines changed

src/gpu/gl/GrGLProgram.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,10 @@ void GrGLProgram::setFragmentData(const GrPipeline& pipeline, int* nextTexSample
127127
void GrGLProgram::setRenderTargetState(const GrPrimitiveProcessor& primProc,
128128
const GrRenderTargetProxy* proxy) {
129129
GrRenderTarget* rt = proxy->peekRenderTarget();
130-
// Load the RT dimension uniform if it is needed
131-
if (fBuiltinUniformHandles.fRTDimensionsUni.isValid() &&
132-
(fRenderTargetState.fRenderTargetSize.fWidth != rt->width() ||
133-
fRenderTargetState.fRenderTargetSize.fHeight != rt->height())) {
134-
fProgramDataManager.set2f(fBuiltinUniformHandles.fRTDimensionsUni,
135-
SkIntToScalar(rt->width()),
136-
SkIntToScalar(rt->height()));
130+
// Load the RT height uniform if it is needed to y-flip gl_FragCoord.
131+
if (fBuiltinUniformHandles.fRTHeightUni.isValid() &&
132+
fRenderTargetState.fRenderTargetSize.fHeight != rt->height()) {
133+
fProgramDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, SkIntToScalar(rt->height()));
137134
}
138135

139136
// set RT adjustment

src/gpu/gl/builders/GrGLProgramBuilder.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,6 @@ void GrGLProgramBuilder::computeCountsAndStrides(GrGLuint programID,
159159
SkASSERT(fInstanceStride == primProc.debugOnly_instanceStride());
160160
}
161161

162-
void GrGLProgramBuilder::addInputVars(const SkSL::Program::Inputs& inputs) {
163-
if (inputs.fRTDimensions) {
164-
this->addRTDimensionsUniform(SKSL_RTDIMENSIONS_NAME);
165-
}
166-
}
167-
168162
GrGLProgram* GrGLProgramBuilder::finalize() {
169163
TRACE_EVENT0("skia", TRACE_FUNC);
170164

@@ -210,7 +204,9 @@ GrGLProgram* GrGLProgramBuilder::finalize() {
210204
if (GR_GL_GET_ERROR(this->gpu()->glInterface()) == GR_GL_NO_ERROR) {
211205
cached = this->checkLinkStatus(programID);
212206
if (cached) {
213-
this->addInputVars(inputs);
207+
if (inputs.fRTHeight) {
208+
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
209+
}
214210
this->computeCountsAndStrides(programID, primProc, false);
215211
}
216212
} else {
@@ -235,7 +231,9 @@ GrGLProgram* GrGLProgramBuilder::finalize() {
235231
return nullptr;
236232
}
237233
inputs = fs->fInputs;
238-
this->addInputVars(inputs);
234+
if (inputs.fRTHeight) {
235+
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
236+
}
239237
if (!this->compileAndAttachShaders(glsl.c_str(), glsl.size(), programID,
240238
GR_GL_FRAGMENT_SHADER, &shadersToDelete, settings,
241239
inputs)) {

src/gpu/gl/builders/GrGLProgramBuilder.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ class GrGLProgramBuilder : public GrGLSLProgramBuilder {
4848
GrGLProgramBuilder(GrGLGpu*, const GrPipeline&, const GrPrimitiveProcessor&,
4949
GrProgramDesc*);
5050

51-
void addInputVars(const SkSL::Program::Inputs& inputs);
5251
bool compileAndAttachShaders(const char* glsl,
5352
int length,
5453
GrGLuint programId,

src/gpu/glsl/GrGLSLProgramBuilder.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,12 +371,12 @@ void GrGLSLProgramBuilder::appendUniformDecls(GrShaderFlags visibility, SkString
371371
this->uniformHandler()->appendUniformDecls(visibility, out);
372372
}
373373

374-
void GrGLSLProgramBuilder::addRTDimensionsUniform(const char* name) {
375-
SkASSERT(!fUniformHandles.fRTDimensionsUni.isValid());
374+
void GrGLSLProgramBuilder::addRTHeightUniform(const char* name) {
375+
SkASSERT(!fUniformHandles.fRTHeightUni.isValid());
376376
GrGLSLUniformHandler* uniformHandler = this->uniformHandler();
377-
fUniformHandles.fRTDimensionsUni =
377+
fUniformHandles.fRTHeightUni =
378378
uniformHandler->internalAddUniformArray(kFragment_GrShaderFlag,
379-
kFloat2_GrSLType, kDefault_GrSLPrecision,
379+
kHalf_GrSLType, kDefault_GrSLPrecision,
380380
name, false, 0, nullptr);
381381
}
382382

src/gpu/glsl/GrGLSLProgramBuilder.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ class GrGLSLProgramBuilder {
4949
return this->uniformHandler()->samplerSwizzle(handle);
5050
}
5151

52-
// Used to add a uniform for the RenderTarget height (used for sk_Dimensions and sk_FragCoord)
53-
// without mangling the name of the uniform inside of a stage.
54-
void addRTDimensionsUniform(const char* name);
52+
// Used to add a uniform for the RenderTarget height (used for frag position) without mangling
53+
// the name of the uniform inside of a stage.
54+
void addRTHeightUniform(const char* name);
5555

5656
// Generates a name for a variable. The generated string will be name prefixed by the prefix
5757
// char (unless the prefix is '\0'). It also will mangle the name to be stage-specific unless

src/gpu/glsl/GrGLSLUniformHandler.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ class GrGLSLProgramBuilder;
2020
// Handles for program uniforms (other than per-effect uniforms)
2121
struct GrGLSLBuiltinUniformHandles {
2222
GrGLSLProgramDataManager::UniformHandle fRTAdjustmentUni;
23-
// Render target dimensions, used to implement sk_Dimensions and to calculate sk_FragCoord when
23+
// We use the render target height to provide a y-down frag coord when specifying
2424
// origin_upper_left is not supported.
25-
GrGLSLProgramDataManager::UniformHandle fRTDimensionsUni;
25+
GrGLSLProgramDataManager::UniformHandle fRTHeightUni;
2626
};
2727

2828
class GrGLSLUniformHandler {

src/gpu/mtl/GrMtlPipelineState.mm

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,9 @@
145145
GrRenderTarget* rt = proxy->peekRenderTarget();
146146

147147
// Load the RT height uniform if it is needed to y-flip gl_FragCoord.
148-
if (fBuiltinUniformHandles.fRTDimensionsUni.isValid() &&
149-
(fRenderTargetState.fRenderTargetSize.fWidth != rt->width() ||
150-
fRenderTargetState.fRenderTargetSize.fHeight != rt->height())) {
151-
fDataManager.set2f(fBuiltinUniformHandles.fRTDimensionsUni, SkIntToScalar(rt->width()),
152-
SkIntToScalar(rt->height()));
148+
if (fBuiltinUniformHandles.fRTHeightUni.isValid() &&
149+
fRenderTargetState.fRenderTargetSize.fHeight != rt->height()) {
150+
fDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, SkIntToScalar(rt->height()));
153151
}
154152

155153
// set RT adjustment

src/gpu/mtl/GrMtlPipelineStateBuilder.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@
7070
if (shaderLibrary == nil) {
7171
return nil;
7272
}
73-
if (inputs.fRTDimensions) {
74-
this->addRTDimensionsUniform(SKSL_RTDIMENSIONS_NAME);
73+
if (inputs.fRTHeight) {
74+
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
7575
}
7676
if (inputs.fFlipY) {
7777
desc->setSurfaceOriginKey(GrGLSLFragmentShaderBuilder::KeyForSurfaceOrigin(

src/gpu/vk/GrVkPipelineState.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -350,11 +350,9 @@ void GrVkPipelineState::setRenderTargetState(const GrRenderTargetProxy* proxy) {
350350
GrRenderTarget* rt = proxy->peekRenderTarget();
351351

352352
// Load the RT height uniform if it is needed to y-flip gl_FragCoord.
353-
if (fBuiltinUniformHandles.fRTDimensionsUni.isValid() &&
354-
(fRenderTargetState.fRenderTargetSize.fWidth != rt->width() ||
355-
fRenderTargetState.fRenderTargetSize.fHeight != rt->height())) {
356-
fDataManager.set2f(fBuiltinUniformHandles.fRTDimensionsUni, SkIntToScalar(rt->height()),
357-
SkIntToScalar(rt->width()));
353+
if (fBuiltinUniformHandles.fRTHeightUni.isValid() &&
354+
fRenderTargetState.fRenderTargetSize.fHeight != rt->height()) {
355+
fDataManager.set1f(fBuiltinUniformHandles.fRTHeightUni, SkIntToScalar(rt->height()));
358356
}
359357

360358
// set RT adjustment

src/gpu/vk/GrVkPipelineStateBuilder.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ bool GrVkPipelineStateBuilder::createVkShaderModule(VkShaderStageFlagBits stage,
7575
if (!result) {
7676
return false;
7777
}
78-
if (inputs.fRTDimensions) {
79-
this->addRTDimensionsUniform(SKSL_RTDIMENSIONS_NAME);
78+
if (inputs.fRTHeight) {
79+
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
8080
}
8181
if (inputs.fFlipY) {
8282
desc->setSurfaceOriginKey(GrGLSLFragmentShaderBuilder::KeyForSurfaceOrigin(

0 commit comments

Comments
 (0)