Overview

Hardware kbl_iris
Architecture m64
Status fail
Filtered Status fail
Time 0.115249

See also historical results for this test.

stdout

FP64 support - subroutines
Verify that subroutines that performs double precision computation works as expected in the CS.
Create and dispatch CS that uses double precision math functions in subroutines to compute output values.
Everything works as expected.
glCreateProgram();
// 3696 returned
glCreateShader(GL_COMPUTE_SHADER);
// 3697 returned
glAttachShader(3696, 3697);
glDeleteShader(3697);
glShaderSource(3697, 2, 0x00007ffc51c8d570, 0x0000000000000000);
glCompileShader(3697);
glLinkProgram(3696);
glGetProgramiv(3696, GL_LINK_STATUS, 0x00007ffc51c8c624);
// params = { 1 }
glGenBuffers(1, 0x0000564abb2a524c);
// buffers = { 2277 }
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, 2277);
glBufferData(GL_SHADER_STORAGE_BUFFER, 32, 0, GL_STATIC_DRAW);
glGetSubroutineIndex(3696, 0x000091b9, Func0);
// 0 returned
glGetSubroutineIndex(3696, 0x000091b9, Func1);
// 1 returned
glGetSubroutineIndex(3696, 0x000091b9, Func2);
// 2 returned
glGetSubroutineIndex(3696, 0x000091b9, Func3);
// 3 returned
glGetSubroutineUniformLocation(3696, 0x000091b9, g_func[0]);
// 0 returned
glGetSubroutineUniformLocation(3696, 0x000091b9, g_func[1]);
// 1 returned
glGetSubroutineUniformLocation(3696, 0x000091b9, g_func[2]);
// 2 returned
glGetSubroutineUniformLocation(3696, 0x000091b9, g_func[3]);
// 3 returned
glUseProgram(3696);
glUniformSubroutinesuiv(0x000091b9, 4, 0x00007ffc51c8d600);
glGetUniformLocation(3696, g_input);
// 0 returned
glUniform1dv(0, 4, 0x00007ffc51c8d5d0);
glGetUniformLocation(3696, index);
// 4 returned
glUniform1i(4, 0);
glDispatchCompute(1, 1, 1);
glGetUniformLocation(3696, index);
// 4 returned
glUniform1i(4, 1);
glDispatchCompute(1, 1, 1);
glGetUniformLocation(3696, index);
// 4 returned
glUniform1i(4, 2);
glDispatchCompute(1, 1, 1);
glGetUniformLocation(3696, index);
// 4 returned
glUniform1i(4, 3);
glDispatchCompute(1, 1, 1);
glMemoryBarrier(GL_BUFFER_UPDATE_BARRIER_BIT);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 2277);
glGetBufferSubData(0x000090d2, 0, 32, 0x7ffc51c8d5d0);
Data at index 0 is 0 should be 1.
Test Run() failed
glUseProgram(0);
glDeleteProgram(3696);
glDeleteBuffers(1, { 2277 });

stderr

pid: 17528