KhronosGroup / KhronosGroup/WebGL
Add test for indexed draws after detaching shaders from linked program
Open
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 2.9k
- Forks
- 704
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 4
Description
A regression test is needed for ANGLE bug http://anglebug.com/6526 , in which the following workflow was done by a customer:
glCreateShader(context = 1, type = GL_VERTEX_SHADER)
glShaderSource(context = 1, shader = 1, count = 1, string = 0x000000016fda2778, length = 0x0000000000000000)
glCompileShader(context = 1, shader = 1)
glGetShaderiv(context = 1, shader = 1, pname = GL_COMPILE_STATUS, params = 0x000000016fda275c)
glObjectLabel(context = 1, identifier = GL_SHADER, name = 1, length = 33, label = 0x0000000116d3aac0)
glCreateShader(context = 1, type = GL_FRAGMENT_SHADER)
glShaderSource(context = 1, shader = 2, count = 1, string = 0x000000016fda2778, length = 0x0000000000000000)
glCompileShader(context = 1, shader = 2)
glGetShaderiv(context = 1, shader = 2, pname = GL_COMPILE_STATUS, params = 0x000000016fda275c)
glObjectLabel(context = 1, identifier = GL_SHADER, name = 2, length = 35, label = 0x0000000116d3aac0)
glCreateProgram(context = 1)
glAttachShader(context = 1, program = 3, shader = 1)
glAttachShader(context = 1, program = 3, shader = 2)
glLinkProgram(context = 1, program = 3)
glDetachShader(context = 1, program = 3, shader = 1) <---
glDeleteShader(context = 1, shader = 1) <---
glDetachShader(context = 1, program = 3, shader = 2) <---
glDeleteShader(context = 1, shader = 2) <---
glGetProgramiv(context = 1, program = 3, pname = GL_LINK_STATUS, params = 0x000000016fda28e4)
glValidateProgram(context = 1, program = 3)
glGetProgramiv(context = 1, program = 3, pname = GL_VALIDATE_STATUS, params = 0x000000016fda28e4)
glObjectLabel(context = 1, identifier = GL_PROGRAM, name = 3, length = 27, label = 0x0000000116ec0f40)
glUseProgram(context = 1, program = 3)
Ideally we'd put the bug back in place and ensure that the newly-written test detects it before submitting.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ANGLE bug report and the listed shader/program workflow, especially detaching and deleting both shaders before indexed draws. Add a regression test that exercises this sequence and verifies indexed draws succeed; ideally confirm it fails when the bug is restored and passes with the fix.
Written by the indexing model from the issue text.
Assessment
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100