Mesa (master): nvfx: match Gallium's gl_PointCoord brokenness

Luca Barbieri lb at kemper.freedesktop.org
Mon Aug 23 13:22:53 UTC 2010


Module: Mesa
Branch: master
Commit: 2e215bc28f71d6b556ba65e6c4e26654782e1844
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e215bc28f71d6b556ba65e6c4e26654782e1844

Author: Luca Barbieri <luca at luca-barbieri.com>
Date:   Mon Aug 23 15:20:31 2010 +0200

nvfx: match Gallium's gl_PointCoord brokenness

Gallium always puts gl_PointCoord in GENERIC[0] if
point_quad_rasterization is enabled.

This is silly, but for now it makes mesa-demos/glsl/pointcoord work.

---

 src/gallium/drivers/nvfx/nvfx_fragprog.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/nvfx/nvfx_fragprog.c b/src/gallium/drivers/nvfx/nvfx_fragprog.c
index 23a85c9..049b814 100644
--- a/src/gallium/drivers/nvfx/nvfx_fragprog.c
+++ b/src/gallium/drivers/nvfx/nvfx_fragprog.c
@@ -1181,8 +1181,11 @@ nvfx_fragprog_validate(struct nvfx_context *nvfx)
 	struct nouveau_channel* chan = nvfx->screen->base.channel;
 	struct nvfx_pipe_fragment_program *pfp = nvfx->fragprog;
 	struct nvfx_vertex_program* vp;
-	unsigned sprite_coord_enable = nvfx->rasterizer->pipe.point_quad_rasterization * nvfx->rasterizer->pipe.sprite_coord_enable;
-	// TODO: correct or flipped?
+	/* Gallium always puts the point coord in GENERIC[0]
+	 * TODO: this is wrong, Gallium needs to be fixed
+	 */
+	unsigned sprite_coord_enable = nvfx->rasterizer->pipe.point_quad_rasterization * (nvfx->rasterizer->pipe.sprite_coord_enable | 1);
+
 	boolean emulate_sprite_flipping = sprite_coord_enable && nvfx->rasterizer->pipe.sprite_coord_mode;
 	unsigned key = emulate_sprite_flipping;
 	struct nvfx_fragment_program* fp;




More information about the mesa-commit mailing list