Commit da1e4122 by Xinghua Cao Committed by Commit Bot

D3D: Fix wrong visit mode

UniformBlockTranslatedToStructuredBufferTraverser needs InVisit step when calling visitBinary. Bug: angleproject:3682 Change-Id: I5c6cec1df52f94de24e1ea0ed13e4fe1e5674faf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2557557 Commit-Queue: Xinghua Cao <xinghua.cao@intel.com> Reviewed-by: 's avatarJiajia Qin <jiajia.qin@intel.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent bb4f496d
......@@ -61,7 +61,7 @@ class UniformBlockTranslatedToStructuredBufferTraverser : public TIntermTraverse
UniformBlockTranslatedToStructuredBufferTraverser::
UniformBlockTranslatedToStructuredBufferTraverser()
: TIntermTraverser(true, false, false)
: TIntermTraverser(true, true, false)
{}
static bool IsSupportedTypeForStructuredBuffer(const TType &type)
......
......@@ -3002,19 +3002,25 @@ TEST_P(UniformBlockWithOneLargeArrayMemberTest, MemberTypeIsFloat)
// Test to transfer a uniform block large array member as an actual parameter to a function.
TEST_P(UniformBlockWithOneLargeArrayMemberTest, MemberAsActualParameter)
{
ANGLE_SKIP_TEST_IF(IsAdreno());
constexpr char kVS[] = R"(#version 300 es
layout(location=0) in vec3 a_position;
uniform UBO{
mat4x4 buf[90];
layout(std140) uniform UBO1{
mat4x4 buf1[90];
} instance;
vec4 test(mat4x4[90] para, vec3 pos){
return para[0] * vec4(pos, 1.0);
layout(std140) uniform UBO2{
mat4x4 buf2[90];
};
vec4 test(mat4x4[90] para1, mat4x4[90] para2, vec3 pos){
return para1[0] * para2[0] * vec4(pos, 1.0);
}
void main(void){
gl_Position = test(instance.buf, a_position);
gl_Position = test(instance.buf1, buf2, a_position);
})";
constexpr char kFS[] = R"(#version 300 es
......@@ -3039,15 +3045,15 @@ TEST_P(UniformBlockWithOneLargeArrayMemberTest, MemberArrayOperations)
constexpr char kVS[] = R"(#version 300 es
layout(location=0) in vec3 a_position;
uniform UBO1{
layout(std140) uniform UBO1{
mat4x4 buf1[90];
};
uniform UBO2{
layout(std140) uniform UBO2{
mat4x4 buf2[90];
};
uniform UBO3{
layout(std140) uniform UBO3{
mat4x4 buf[90];
} instance;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment