mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 11:58:10 +02:00
nvfx: Add support for two sided color
This patch adds support for two-sided vertex color to nv30/nv40. When set, the COLOR0/1 fs inputs on back faces will be wired to vs outputs BCOLOR0/1. This makes OpenGL two sided lighting work, which can be tested with progs/demos/projtex.
This commit is contained in:
parent
a2ddae0fc3
commit
7fc7b75995
2 changed files with 4 additions and 2 deletions
|
|
@ -46,7 +46,7 @@
|
|||
struct nvfx_rasterizer_state {
|
||||
struct pipe_rasterizer_state pipe;
|
||||
unsigned sb_len;
|
||||
uint32_t sb[30];
|
||||
uint32_t sb[32];
|
||||
};
|
||||
|
||||
struct nvfx_zsa_state {
|
||||
|
|
|
|||
|
|
@ -193,7 +193,6 @@ nvfx_rasterizer_state_create(struct pipe_context *pipe,
|
|||
struct nouveau_statebuf_builder sb = sb_init(rsso->sb);
|
||||
|
||||
/*XXX: ignored:
|
||||
* light_twoside
|
||||
* point_smooth -nohw
|
||||
* multisample
|
||||
*/
|
||||
|
|
@ -202,6 +201,9 @@ nvfx_rasterizer_state_create(struct pipe_context *pipe,
|
|||
sb_data(sb, cso->flatshade ? NV34TCL_SHADE_MODEL_FLAT :
|
||||
NV34TCL_SHADE_MODEL_SMOOTH);
|
||||
|
||||
sb_method(sb, NV34TCL_VERTEX_TWO_SIDE_ENABLE, 1);
|
||||
sb_data(sb, cso->light_twoside);
|
||||
|
||||
sb_method(sb, NV34TCL_LINE_WIDTH, 2);
|
||||
sb_data(sb, (unsigned char)(cso->line_width * 8.0) & 0xff);
|
||||
sb_data(sb, cso->line_smooth ? 1 : 0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue