aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/gen6_multisample_state.c
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2015-09-16 17:43:33 +0100
committerNeil Roberts <[email protected]>2015-11-05 10:33:16 +0100
commit2dd76ec16e599bd919962f439b59fdd73e85ff94 (patch)
tree3cc2f8ecb9c0c7598d2453da82da14ee10630ee0 /src/mesa/drivers/dri/i965/gen6_multisample_state.c
parent1a22b12fc51e80c20c700f93904ffd12caa73473 (diff)
meta: Support 16x MSAA in the multisample scaled blit shader
v2: Fix the x_scale in the shader. Remove the doubts in the commit message. Reviewed-by: Anuj Phogat <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen6_multisample_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/gen6_multisample_state.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_multisample_state.c b/src/mesa/drivers/dri/i965/gen6_multisample_state.c
index 49c6ebabfba..8eb620de56b 100644
--- a/src/mesa/drivers/dri/i965/gen6_multisample_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_multisample_state.c
@@ -91,6 +91,17 @@ gen6_get_sample_position(struct gl_context *ctx,
* | 6 | 7 | | 7 | 1 |
* --------- ---------
*
+ * 16X MSAA sample index layout 16x MSAA sample number layout
+ * ----------------- -----------------
+ * | 0 | 1 | 2 | 3 | |15 |10 | 9 | 7 |
+ * ----------------- -----------------
+ * | 4 | 5 | 6 | 7 | | 4 | 1 | 3 |13 |
+ * ----------------- -----------------
+ * | 8 | 9 |10 |11 | |12 | 2 | 0 | 6 |
+ * ----------------- -----------------
+ * |12 |13 |14 |15 | |11 | 8 | 5 |14 |
+ * ----------------- -----------------
+ *
* A sample map is used to map sample indices to sample numbers.
*/
void
@@ -99,10 +110,13 @@ gen6_set_sample_maps(struct gl_context *ctx)
uint8_t map_2x[2] = {0, 1};
uint8_t map_4x[4] = {0, 1, 2, 3};
uint8_t map_8x[8] = {5, 2, 4, 6, 0, 3, 7, 1};
+ uint8_t map_16x[16] = { 15, 10, 9, 7, 4, 1, 3, 13,
+ 12, 2, 0, 6, 11, 8, 5, 14 };
memcpy(ctx->Const.SampleMap2x, map_2x, sizeof(map_2x));
memcpy(ctx->Const.SampleMap4x, map_4x, sizeof(map_4x));
memcpy(ctx->Const.SampleMap8x, map_8x, sizeof(map_8x));
+ memcpy(ctx->Const.SampleMap16x, map_16x, sizeof(map_16x));
}
/**