aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinlin.xu <linlin.xu@arm.com>2023-12-12 16:08:53 +0800
committerJörg Wagner <jorwag@google.com>2024-02-27 13:19:56 +0000
commit39e80e27c87b390a4ffea0f5961679a4877abc1e (patch)
tree89a737836d35adc16bed32c81eb7d354ec21fe9b
parent8a2d3c815e205b01a8a5c0953c2689692f1a34b0 (diff)
downloaddeqp-39e80e27c87b390a4ffea0f5961679a4877abc1e.tar.gz
Tweak grid size in vertex shader render test.
dEQP-GLES3.functional.shaders.matrix.inverse.dynamic.lowp* tests inverse a matrix. The matrix is lowp or mediump and the half-precison float result is inf value. The matrix value is relate with gridSize. This change modifys gridSize to ensure inverse matrix not inf value. Other case gridSize not change. Affects (at least): dEQP-GLES3.functional.shaders.matrix* Components: AOSP VK-GL-CTS issue: 4848 Change-Id: I77250f18a48fbdbcc96cba9564086f161312df4f (cherry picked from commit e76a7b0b4b7cdc8c442a6e9203aba6d7d4fc9759)
-rw-r--r--modules/gles3/functional/es3fShaderMatrixTests.cpp3
-rw-r--r--modules/glshared/glsShaderRenderCase.cpp4
-rw-r--r--modules/glshared/glsShaderRenderCase.hpp1
3 files changed, 7 insertions, 1 deletions
diff --git a/modules/gles3/functional/es3fShaderMatrixTests.cpp b/modules/gles3/functional/es3fShaderMatrixTests.cpp
index 6d98bc65b..edb981891 100644
--- a/modules/gles3/functional/es3fShaderMatrixTests.cpp
+++ b/modules/gles3/functional/es3fShaderMatrixTests.cpp
@@ -1712,6 +1712,9 @@ void ShaderMatrixCase::init (void)
}
ShaderRenderCase::init();
+
+ // reassign grid size prevent matrix inverse inf value.
+ m_gridSize = 64;
}
std::string ShaderMatrixCase::genGLSLMatToVec3Reduction (const glu::DataType& matType, const char* varName)
diff --git a/modules/glshared/glsShaderRenderCase.cpp b/modules/glshared/glsShaderRenderCase.cpp
index b8699174d..6fe3b4d95 100644
--- a/modules/glshared/glsShaderRenderCase.cpp
+++ b/modules/glshared/glsShaderRenderCase.cpp
@@ -403,6 +403,8 @@ void ShaderRenderCase::init (void)
ShaderRenderCase::deinit();
throw;
}
+
+ m_gridSize = GRID_SIZE;
}
void ShaderRenderCase::deinit (void)
@@ -433,7 +435,7 @@ TestNode::IterateResult ShaderRenderCase::iterate (void)
int height = viewportSize.y();
// \todo [petri] Better handling of constCoords (render in multiple chunks, vary coords).
- QuadGrid quadGrid(m_isVertexCase ? GRID_SIZE : 4, width, height, Vec4(0.125f, 0.25f, 0.5f, 1.0f), m_userAttribTransforms, m_textures);
+ QuadGrid quadGrid(m_isVertexCase ? m_gridSize : 4, width, height, Vec4(0.125f, 0.25f, 0.5f, 1.0f), m_userAttribTransforms, m_textures);
// Render result.
Surface resImage(width, height);
diff --git a/modules/glshared/glsShaderRenderCase.hpp b/modules/glshared/glsShaderRenderCase.hpp
index e8299c856..e07e85d85 100644
--- a/modules/glshared/glsShaderRenderCase.hpp
+++ b/modules/glshared/glsShaderRenderCase.hpp
@@ -252,6 +252,7 @@ protected:
std::vector<TextureBinding> m_textures;
glu::ShaderProgram* m_program;
+ int m_gridSize;
};
// Helpers.