[Mesa-dev] [PATCH 19/20] gallium/radeon: set VPORT_ZMIN/MAX registers correctly

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Tue Aug 30 09:02:18 UTC 2016


On Tue, Aug 30, 2016 at 9:06 AM, Marek Olšák <maraeo at gmail.com> wrote:
> On Mon, Aug 29, 2016 at 10:33 PM, Bas Nieuwenhuizen
> <bas at basnieuwenhuizen.nl> wrote:
>> On Mon, Aug 29, 2016 at 5:28 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>> From: Marek Olšák <marek.olsak at amd.com>
>>>
>>> Calculate depth ranges from viewport states and
>>> pipe_rasterizer_state::clip_halfz.
>>>
>>> The evergreend.h change is required to silence a warning.
>>>
>>> This fixes this recently updated piglit: arb_depth_clamp/depth-clamp-range
>>> ---
>>>  src/gallium/drivers/r600/evergreen_state.c    |  1 +
>>>  src/gallium/drivers/r600/evergreend.h         |  4 +-
>>>  src/gallium/drivers/r600/r600_hw_context.c    |  1 +
>>>  src/gallium/drivers/r600/r600_pipe.h          |  1 +
>>>  src/gallium/drivers/r600/r600_state.c         |  1 +
>>>  src/gallium/drivers/r600/r600_state_common.c  |  2 +-
>>>  src/gallium/drivers/radeon/r600_pipe_common.h |  5 +-
>>>  src/gallium/drivers/radeon/r600_viewport.c    | 73 ++++++++++++++++++++++++---
>>>  src/gallium/drivers/radeon/r600d_common.h     |  2 +
>>>  src/gallium/drivers/radeonsi/si_hw_context.c  |  1 +
>>>  src/gallium/drivers/radeonsi/si_state.c       |  3 +-
>>>  src/gallium/drivers/radeonsi/si_state.h       |  1 +
>>>  12 files changed, 82 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
>>> index 11c8161..5ca5453 100644
>>> --- a/src/gallium/drivers/r600/evergreen_state.c
>>> +++ b/src/gallium/drivers/r600/evergreen_state.c
>>> @@ -466,20 +466,21 @@ static void *evergreen_create_rs_state(struct pipe_context *ctx,
>>>         float psize_min, psize_max;
>>>         struct r600_rasterizer_state *rs = CALLOC_STRUCT(r600_rasterizer_state);
>>>
>>>         if (!rs) {
>>>                 return NULL;
>>>         }
>>>
>>>         r600_init_command_buffer(&rs->buffer, 30);
>>>
>>>         rs->scissor_enable = state->scissor;
>>> +       rs->clip_halfz = state->clip_halfz;
>>>         rs->flatshade = state->flatshade;
>>>         rs->sprite_coord_enable = state->sprite_coord_enable;
>>>         rs->two_side = state->light_twoside;
>>>         rs->clip_plane_enable = state->clip_plane_enable;
>>>         rs->pa_sc_line_stipple = state->line_stipple_enable ?
>>>                                 S_028A0C_LINE_PATTERN(state->line_stipple_pattern) |
>>>                                 S_028A0C_REPEAT_COUNT(state->line_stipple_factor) : 0;
>>>         rs->pa_cl_clip_cntl =
>>>                 S_028810_DX_CLIP_SPACE_DEF(state->clip_halfz) |
>>>                 S_028810_ZCLIP_NEAR_DISABLE(!state->depth_clip) |
>>> diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h
>>> index a81b6c5..3f33e42 100644
>>> --- a/src/gallium/drivers/r600/evergreend.h
>>> +++ b/src/gallium/drivers/r600/evergreend.h
>>> @@ -1856,22 +1856,22 @@
>>>  #define R_0283DC_SQ_VTX_SEMANTIC_23                  0x000283DC
>>>  #define R_0283E0_SQ_VTX_SEMANTIC_24                  0x000283E0
>>>  #define R_0283E4_SQ_VTX_SEMANTIC_25                  0x000283E4
>>>  #define R_0283E8_SQ_VTX_SEMANTIC_26                  0x000283E8
>>>  #define R_0283EC_SQ_VTX_SEMANTIC_27                  0x000283EC
>>>  #define R_0283F0_SQ_VTX_SEMANTIC_28                  0x000283F0
>>>  #define R_0283F4_SQ_VTX_SEMANTIC_29                  0x000283F4
>>>  #define R_0283F8_SQ_VTX_SEMANTIC_30                  0x000283F8
>>>  #define R_0283FC_SQ_VTX_SEMANTIC_31                  0x000283FC
>>>  #define R_0288F0_SQ_VTX_SEMANTIC_CLEAR               0x000288F0
>>> -#define R_0282D0_PA_SC_VPORT_ZMIN_0                  0x000282D0
>>> -#define R_0282D4_PA_SC_VPORT_ZMAX_0                  0x000282D4
>>> +#define R_0282D0_PA_SC_VPORT_ZMIN_0                                     0x0282D0
>>> +#define R_0282D4_PA_SC_VPORT_ZMAX_0                                     0x0282D4
>>
>> Could you align these the same as the other registers.
>>
>> With that, patches 1-11,13-16,18-20 are
>>
>> Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>>
>> Patches 12 and 17 look good to me, but I can't ascertain anything
>> about correctness as they almost entirely depend on unodcumented
>> hardware facts that I don't know and hence don't get my r-b. I don't
>> if there is a preferred tag for this?
>
> Acked-by.
>
> Marek

Okay, patches 12 and 17 are

Acked-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

- Bas


More information about the mesa-dev mailing list