On 09.10.2017 16:26, Marek Olšák wrote:
On Mon, Oct 9, 2017 at 3:26 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote:
On 08.10.2017 00:47, Marek Olšák wrote:

From: Marek Olšák <marek.ol...@amd.com>

---
   src/gallium/drivers/radeon/Makefile.sources   |   1 -
   src/gallium/drivers/radeon/cayman_msaa.c      | 269
--------------------------
   src/gallium/drivers/radeon/r600_pipe_common.c |   1 -
   src/gallium/drivers/radeon/r600_pipe_common.h |  25 ---
   src/gallium/drivers/radeonsi/Makefile.sources |   1 +
   src/gallium/drivers/radeonsi/si_pipe.c        |   1 +
   src/gallium/drivers/radeonsi/si_pipe.h        |   9 +
   src/gallium/drivers/radeonsi/si_state.c       |  79 ++++++--
   src/gallium/drivers/radeonsi/si_state.h       |   4 +
   src/gallium/drivers/radeonsi/si_state_msaa.c  | 209 ++++++++++++++++++++
   10 files changed, 292 insertions(+), 307 deletions(-)
   delete mode 100644 src/gallium/drivers/radeon/cayman_msaa.c
   create mode 100644 src/gallium/drivers/radeonsi/si_state_msaa.c

[snip]

diff --git a/src/gallium/drivers/radeonsi/si_state.c
b/src/gallium/drivers/radeonsi/si_state.c
index 82f3962..3c6b7ca 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c

[snip]

@@ -3296,24 +3296,82 @@ static void si_emit_msaa_config(struct si_context
*sctx, struct r600_atom *atom)
                 S_028A4C_OUT_OF_ORDER_PRIMITIVE_ENABLE(out_of_order_rast)
|
                 S_028A4C_OUT_OF_ORDER_WATER_MARK(0x7) |
                 /* always 1: */
                 S_028A4C_WALK_ALIGN8_PRIM_FITS_ST(1) |
                 S_028A4C_SUPERTILE_WALK_ORDER_ENABLE(1) |
                 S_028A4C_TILE_WALK_ORDER_ENABLE(1) |
                 S_028A4C_MULTI_SHADER_ENGINE_PRIM_DISCARD_ENABLE(1) |
                 S_028A4C_FORCE_EOV_CNTDWN_ENABLE(1) |
                 S_028A4C_FORCE_EOV_REZ_ENABLE(1);
   -     si_common_emit_msaa_config(cs, sctx->framebuffer.nr_samples,
-                               sctx->ps_iter_samples,
-                               sctx->smoothing_enabled ?
SI_NUM_SMOOTH_AA_SAMPLES : 0,
-                               sc_mode_cntl_1);
+       int setup_samples = sctx->framebuffer.nr_samples > 1 ?
sctx->framebuffer.nr_samples :
+                           sctx->smoothing_enabled ?
SI_NUM_SMOOTH_AA_SAMPLES : 0;
+
+       /* Required by OpenGL line rasterization.
+        *
+        * TODO: We should also enable perpendicular endcaps for AA lines,
+        *       but that requires implementing line stippling in the
pixel
+        *       shader. SC can only do line stippling with axis-aligned
+        *       endcaps.
+        */
+       unsigned sc_line_cntl = S_028BDC_DX10_DIAMOND_TEST_ENA(1);
+
+       if (setup_samples > 1) {
+               /* distance from the pixel center, indexed by
log2(nr_samples) */
+               static unsigned max_dist[] = {
+                       0, /* unused */
+                       4, /* 2x MSAA */
+                       6, /* 4x MSAA */
+                       7, /* 8x MSAA */


cayman_msaa.c had 8 here, is that change intentional?

Yes, the 8x sample positions don't use +-8.

Ah, makes sense. R-b on this patch as well then.



Marek



--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to