diff options
author | Marek Olšák <[email protected]> | 2010-08-25 04:55:01 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-08-25 04:57:11 +0200 |
commit | 879a73023189eed488db2840b829aa5c78e5ba3f (patch) | |
tree | 211666b9b979c3de61fc50003424809d7a75f171 | |
parent | 3a97ec7f4833ff62fa1b533de693a41ae49f1fef (diff) |
r300g: fix gl_PointCoord
Is this hackish or is this the correct way to use point_quad_rasterization?
Copied from nvfx.
-rw-r--r-- | src/gallium/drivers/r300/r300_state.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 3e35d7ab285..47e359cd5f5 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -950,6 +950,11 @@ static void* r300_create_rs_state(struct pipe_context* pipe, rs->rs = *state; rs->rs_draw = *state; + /* Generate point sprite texture coordinates in GENERIC0 + * if point_quad_rasterization is TRUE. */ + rs->rs.sprite_coord_enable = state->point_quad_rasterization * + (state->sprite_coord_enable | 1); + /* Override some states for Draw. */ rs->rs_draw.sprite_coord_enable = 0; /* We can do this in HW. */ @@ -1051,10 +1056,10 @@ static void* r300_create_rs_state(struct pipe_context* pipe, /* Point sprites */ stuffing_enable = 0; - if (state->sprite_coord_enable) { + if (rs->rs.sprite_coord_enable) { stuffing_enable = R300_GB_POINT_STUFF_ENABLE; for (i = 0; i < 8; i++) { - if (state->sprite_coord_enable & (1 << i)) + if (rs->rs.sprite_coord_enable & (1 << i)) stuffing_enable |= R300_GB_TEX_ST << (R300_GB_TEX0_SOURCE_SHIFT + (i*2)); } |