aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinlin.xu <linlin.xu@arm.com>2023-12-12 16:08:53 +0800
committerAndroid Build Cherrypicker Worker <android-build-cherrypicker-worker@google.com>2024-03-28 00:34:44 +0000
commit83c975e6df34f9e0cd1f0fd9bcacf3a141d7b05a (patch)
tree1f2da5ee7065849f0bda59d585da6fdf19f9f766
parent93763ac0ec0512d9ce98ac062bf73e37e61a80b6 (diff)
downloaddeqp-83c975e6df34f9e0cd1f0fd9bcacf3a141d7b05a.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 (cherry picked from commit e76a7b0b4b7cdc8c442a6e9203aba6d7d4fc9759) (cherry picked from https://android-review.googlesource.com/q/commit:39e80e27c87b390a4ffea0f5961679a4877abc1e) Merged-In: I77250f18a48fbdbcc96cba9564086f161312df4f Change-Id: I77250f18a48fbdbcc96cba9564086f161312df4f Bug: b/326543603 Bug: b/328677465
-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.