Mesa (master): r300g: fix gl_PointCoord
Marek Olšák
mareko at kemper.freedesktop.org
Wed Aug 25 02:57:21 UTC 2010
Module: Mesa
Branch: master
Commit: 879a73023189eed488db2840b829aa5c78e5ba3f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=879a73023189eed488db2840b829aa5c78e5ba3f
Author: Marek Olšák <maraeo at gmail.com>
Date: Wed Aug 25 04:55:01 2010 +0200
r300g: fix gl_PointCoord
Is this hackish or is this the correct way to use point_quad_rasterization?
Copied from nvfx.
---
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 3e35d7a..47e359c 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));
}
More information about the mesa-commit
mailing list