-
Notifications
You must be signed in to change notification settings - Fork 550
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
Add Rasterizer state support #51
Comments
For the reference, D3D has the following state groups (listing only relevant ones):
When I thought about the rasterizer state as a whole, I was imagining what parameters transform feedback (aka stream-out in D3D) will not have comparing to a regular draw call. Apparently, we can't ignore the primitive setup when the rasterizer is off, because primitives are still constructed when the tessellation is ON, and this can be done with transform feedback. Another thing is the clear operation. OpenGL clear still respects the scissor test as well as write masks for color, depth, and stencil, but nothing else. Perhaps, we can pass only the For the regular draw calls, both OM and Rasterizer are part of the fixed-function pipeline state. Both can not be derived automatically for the general case, hence to be provided. Is there much sense then to split the whole state into Rasterizer + OM? Instead, we can just have all the state blocks be a part of a larger structure. |
Head's up - renaming 'rast' to 'state' |
Rasterizer state is (in this context) the configuration of fixed-function hardware functions (i.e. fragment shader is not a part of this state) that are responsible for bringing the output geometry to the framebuffer. It can include the following blocks (roughly in the order they are executed by HW):
We could have them stored in one big descriptor (either passed with every draw call - heavy, immutably defined and represented by a handle), or split into groups:
The reason why I put masks into a separate group with scissor is because it's a subset of the only states that affect Clear function.
The text was updated successfully, but these errors were encountered: