Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

allow non-preferred line interpolation for gles #309

Closed

Conversation

kusma
Copy link
Contributor

@kusma kusma commented Mar 24, 2022

The OpenGL ES 3.2 spec, section 13.6.2.1 ("Wide Lines") says the
following:

---8<---
The preferred method of attribute interpolation for a wide line is to
generate the same attribute values for all fragments in the row or
column described above, as if the adjusted line were used for
interpolation and those values replicated to the other fragments,
except for gl_FragCoord which is interpolated as usual. An
implementation may instead interpolate each fragment according to the
formula in "Basic Line Segment Rasterization", using the original
line segment endpoints.
---8<---

However, the code that verified the interpolation only checked against
the preferred interpolation.

Luckily, we have code that does the right checking. By marking the ES2
and ES3 line-rasterization tests with a bit to allow this, we can hook
this up as appropriate.

Components: OpenGL ES, Framework

Public Issue: 273

Affected Tests:
dEQP-GLES2.functional.rasterization.interpolation.*_wide
dEQP-GLES3.functional.rasterization.interpolation.line_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide

The OpenGL ES 3.2 spec, section 13.6.2.1 ("Wide Lines") says the
following:

---8<---
The preferred method of attribute interpolation for a wide line is to
generate the same attribute values for all fragments in the row or
column described above, as if the adjusted line were used for
interpolation and those values replicated to the other fragments,
except for gl_FragCoord which is interpolated as usual. An
implementation may instead interpolate each fragment according to the
formula in "Basic Line Segment Rasterization", using the original
line segment endpoints.
---8<---

However, the code that verified the interpolation only checked against
the preferred interpolation.

Luckily, we have code that does the right checking. By marking the ES2
and ES3 line-rasterization tests with a bit to allow this, we can hook
this up as appropriate.

Components: OpenGL ES, Framework

Public Issue: 273

Affected Tests:
dEQP-GLES2.functional.rasterization.interpolation.*_wide
dEQP-GLES3.functional.rasterization.interpolation.line_wide
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
@mnetsch
Copy link
Contributor

mnetsch commented Apr 14, 2022

Merged in a6cd9c7

@mnetsch mnetsch closed this Apr 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants