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

Remove all the uniforms #345

Closed
kvark opened this issue Jan 9, 2020 · 2 comments
Closed

Remove all the uniforms #345

kvark opened this issue Jan 9, 2020 · 2 comments
Assignees

Comments

@kvark
Copy link

kvark commented Jan 9, 2020

Currently, WebRender upstream has two uniforms that are lazily updated per program. We use push constants on some platforms and falling back to a separate descriptor set on Intel Linux, where push constants reveal a driver issue. I believe we can get away without using push constants completely.

u_projection - vertex transformation matrix. WebRender has it associated with the target, so we can safely move it into a constant buffer within the per-target descriptor set.

u_mode - the mode of operation, used mainly for text rendering. This is typically changed together with the blend mode. This means, we are doing bind_pipeline call. We might, therefore, just turn u_mode into a specialization constant for the pipelines. It may by itself improve performance.

With these removed, we are going to be left with no uniforms, so no need for push constants and their workarounds. Also, lighter draw calls 🚀

@kvark
Copy link
Author

kvark commented Jan 13, 2020

@kvark
Copy link
Author

kvark commented Feb 27, 2020

Fixed by #346

@kvark kvark closed this as completed Feb 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants