Overview

Hardware kbl_iris
Architecture m64
Status fail
Filtered Status fail
Time 0.018205

See also historical results for this test.

stdout

Separable CS Programs - Compute and non-compute stages (1)
1. Verify that compute and non-compute stages can be attached to one pipeline object.
2. Verify that DrawArrays and ComputeDispatch commands works as expected in this case.
1. Create VS, FS and CS. Attach all created stages to one pipeline object.
2. Bind pipeline object.
3. Invoke compute stage with DispatchCompute commmand.
4. Issue MemoryBarrier command.
5. Issue DrawArrays command which uses data written by the compute stage.
6. Verify result.
Everything works as expected.
glCreateProgram();
// 3681 returned
glCreateShader(GL_COMPUTE_SHADER);
// 3682 returned
glAttachShader(3681, 3682);
glDeleteShader(3682);
glShaderSource(3682, 2, 0x00007ffc51c8d6f0, 0x0000000000000000);
glCompileShader(3682);
glProgramParameteri(3681, GL_PROGRAM_SEPARABLE, 1);
glLinkProgram(3681);
glGetProgramiv(3681, GL_LINK_STATUS, 0x00007ffc51c8c7a4);
// params = { 1 }
glCreateShaderProgramv(0x00008b31, 2, 0x00007ffc51c8d700);
// 3684 returned
glGetProgramiv(3684, GL_LINK_STATUS, 0x00007ffc51c8c7a4);
// params = { 1 }
glCreateShaderProgramv(0x00008b30, 2, 0x00007ffc51c8d700);
// 3686 returned
glGetProgramiv(3686, GL_LINK_STATUS, 0x00007ffc51c8c7a4);
// params = { 1 }
glGenProgramPipelines(1, 0x0000564abb3d8f5c);
// pipelines = { 3 }
glUseProgramStages(3, GL_VERTEX_SHADER_BIT, 3684);
glUseProgramStages(3, GL_FRAGMENT_SHADER_BIT, 3686);
glUseProgramStages(3, GL_COMPUTE_SHADER_BIT, 3681);
glGenBuffers(1, 0x0000564abb3d8f54);
// buffers = { 2212 }
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 2212);
glBufferData(GL_SHADER_STORAGE_BUFFER, 64, 0, GL_DYNAMIC_DRAW);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
glGenVertexArrays(1, 0x0000564abb3d8f58);
// arrays = { 1020 }
glBindVertexArray(1020);
glBindBuffer(GL_ARRAY_BUFFER, 2212);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glEnableVertexAttribArray(0);
glBindVertexArray(0);
glBindProgramPipeline(3);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, 2212);
glDispatchCompute(1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(1020);
glMemoryBarrier(GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glReadPixels(0, 0, 400, 300, GL_RGBA, GL_FLOAT, 0x564abc3eb200);
Color at (0, 0) is [0, 0, 0, 1] should be [0, 1, 0, 1].
Test Run() failed
glDeleteProgram(3684);
glDeleteProgram(3686);
glDeleteProgram(3681);
glDeleteBuffers(1, { 2212 });
glDeleteVertexArrays(1, { 1020 });
glDeleteProgramPipelines(1, { 3 });

stderr

pid: 17528