[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