r600g: fix evergreen 8x MSAA sample positions
authorMarek Olšák <maraeo@gmail.com>
Wed, 22 Aug 2012 22:39:01 +0000 (00:39 +0200)
committerMarek Olšák <maraeo@gmail.com>
Mon, 27 Aug 2012 02:31:00 +0000 (04:31 +0200)
The original samples positions took samples outside of the pixel boundary,
leading to dark pixels on the edge of the colorbuffer, among other things.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/evergreen_state.c

index 4e86693be451144cb0cb23c4548129fa1e298baf..e12706e856bd8fe50580ee834ecd50d1835753db 100644 (file)
@@ -1516,24 +1516,24 @@ static uint32_t evergreen_set_ms_pos(struct pipe_context *ctx, struct r600_pipe_
        static unsigned max_dist_4x = 6;
        /* 8xMSAA */
        static uint32_t eg_sample_locs_8x[] = {
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
        };
        static uint32_t cm_sample_locs_8x[] = {
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG(-2, -5, 4, -4,  1, 6, -6, -2),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
-               FILL_SREG( 6,  1, 0,  0, -5, 4,  7, -8),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG(-2, -5, 3, -4, -1, 5, -6, -2),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
+               FILL_SREG( 6,  0, 0,  0, -5, 3,  4,  4),
        };
        static unsigned max_dist_8x = 8;
        /* 16xMSAA */