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

glDrawBuffers is a global state function, used incorrectly #149

Open
JSandusky opened this issue Jun 30, 2019 · 2 comments
Open

glDrawBuffers is a global state function, used incorrectly #149

JSandusky opened this issue Jun 30, 2019 · 2 comments

Comments

@JSandusky
Copy link

JSandusky commented Jun 30, 2019

Per the title, glDrawBuffers is used incorrectly and has to be specified (per the literal language of the spec) every time the fbo is changed.

This is why deferred rendering doesn't function on Intel hardware (like an HD4000). ATI/nVidia treat the fbo a bit like a vao, which is not correct - drivers massaging out common errors.

@algts
Copy link
Collaborator

algts commented Jul 1, 2019

Hello. Did you test on gl4 backend or gl2 backend? I can confirm that intel 530 works correctly with deferred rendering (win 10).

@JSandusky
Copy link
Author

JSandusky commented Jul 3, 2019

I checked an intel 3600 and an HD4000 in GL2. The HD4000 I also checked in GL4 (had to cheat it to create a 4.0 (GLFW) instead of a 4.3 one).

I made the necessary changes for the HD4000 to run GL4 deferred-pipeline correctly. I need to do the same changes to GL2 and check the 3600 again on it (that's a GL3 device IIRC).

Though, if newer Intels have taken the same interpretation of the specs (the language is nonsensically vague in them) as the other vendors it might make sense to only make those changes in GL2 (where the issue is more realistic) or ignore it altogether.

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

No branches or pull requests

2 participants