[Mesa-dev] [PATCH 5/7] radeonsi: import cayman_msaa.c from drivers/radeon

Marek Olšák maraeo at gmail.com
Mon Oct 9 14:26:25 UTC 2017


On Mon, Oct 9, 2017 at 3:26 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> On 08.10.2017 00:47, Marek Olšák wrote:
>>
>> From: Marek Olšák <marek.olsak at 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.

Marek


More information about the mesa-dev mailing list