summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_pipe.h
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2016-07-06 16:33:43 +0200
committerNicolai Hähnle <[email protected]>2016-07-08 10:52:50 +0200
commitd938b8c0bf32ab5f0103ac68071c4cc467846108 (patch)
treeb4c84df73398a35dca95096b61f3b74e1c4fd0d2 /src/gallium/drivers/radeonsi/si_pipe.h
parent7d2ce5258f279ec22e86ee772f257756f5314423 (diff)
radeonsi: explicitly choose center locations for 1xAA on Polaris
Unlike SC, the small primitive filter does not automatically use center locations in 1xAA mode, so this is needed to avoid artifacts caused by the small primitive filter discarding triangles that it shouldn't. As a side effect of how the effective number of samples is now calculated, this patch also avoids submitting the sample locations for line/poly smoothing when they're not really needed. Cc: 12.0 <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_pipe.h')
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index 1f63c12e5b4..326b8191475 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -181,6 +181,11 @@ struct si_clip_state {
struct pipe_clip_state state;
};
+struct si_sample_locs {
+ struct r600_atom atom;
+ unsigned nr_samples;
+};
+
struct si_sample_mask {
struct r600_atom atom;
uint16_t sample_mask;
@@ -225,7 +230,7 @@ struct si_context {
/* Atom declarations. */
struct r600_atom cache_flush;
struct si_framebuffer framebuffer;
- struct r600_atom msaa_sample_locs;
+ struct si_sample_locs msaa_sample_locs;
struct r600_atom db_render_state;
struct r600_atom msaa_config;
struct si_sample_mask sample_mask;