[Mesa-dev] [PATCH] r600g: use SQ_VTX_SEMANTIC_CLEAR to clear the semantic registers
Alex Deucher
alexdeucher at gmail.com
Mon Oct 29 06:06:22 PDT 2012
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
On Mon, Oct 29, 2012 at 8:23 AM, Marek Olšák <maraeo at gmail.com> wrote:
> ---
> src/gallium/drivers/r600/evergreen_state.c | 72 +++-------------------------
> src/gallium/drivers/r600/evergreend.h | 1 +
> src/gallium/drivers/r600/r600_state.c | 36 ++------------
> src/gallium/drivers/r600/r600d.h | 1 +
> 4 files changed, 11 insertions(+), 99 deletions(-)
>
> diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
> index ab9a7a5..cf3c60f 100644
> --- a/src/gallium/drivers/r600/evergreen_state.c
> +++ b/src/gallium/drivers/r600/evergreen_state.c
> @@ -2533,39 +2533,9 @@ static void cayman_init_atom_start_cs(struct r600_context *rctx)
> r600_store_value(cb, 0); /* CM_R_0288E8_SQ_LDS_ALLOC */
> r600_store_value(cb, 0); /* R_0288EC_SQ_LDS_ALLOC_PS */
>
> - r600_store_context_reg_seq(cb, R_028380_SQ_VTX_SEMANTIC_0, 34);
> - r600_store_value(cb, 0); /* R_028380_SQ_VTX_SEMANTIC_0 */
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0); /* R_0283FC_SQ_VTX_SEMANTIC_31 */
> + r600_store_context_reg(cb, R_0288F0_SQ_VTX_SEMANTIC_CLEAR, ~0);
> +
> + r600_store_context_reg_seq(cb, R_028400_VGT_MAX_VTX_INDX, 2);
> r600_store_value(cb, ~0); /* R_028400_VGT_MAX_VTX_INDX */
> r600_store_value(cb, 0); /* R_028404_VGT_MIN_VTX_INDX */
>
> @@ -3011,39 +2981,9 @@ void evergreen_init_atom_start_cs(struct r600_context *rctx)
>
> r600_store_config_reg(cb, R_008A14_PA_CL_ENHANCE, (3 << 1) | 1);
>
> - r600_store_context_reg_seq(cb, R_028380_SQ_VTX_SEMANTIC_0, 34);
> - r600_store_value(cb, 0); /* R_028380_SQ_VTX_SEMANTIC_0 */
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0); /* R_0283FC_SQ_VTX_SEMANTIC_31 */
> + r600_store_context_reg(cb, R_0288F0_SQ_VTX_SEMANTIC_CLEAR, ~0);
> +
> + r600_store_context_reg_seq(cb, R_028400_VGT_MAX_VTX_INDX, 2);
> r600_store_value(cb, ~0); /* R_028400_VGT_MAX_VTX_INDX */
> r600_store_value(cb, 0); /* R_028404_VGT_MIN_VTX_INDX */
>
> diff --git a/src/gallium/drivers/r600/evergreend.h b/src/gallium/drivers/r600/evergreend.h
> index edb1a55..0520691 100644
> --- a/src/gallium/drivers/r600/evergreend.h
> +++ b/src/gallium/drivers/r600/evergreend.h
> @@ -1709,6 +1709,7 @@
> #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_028400_VGT_MAX_VTX_INDX 0x00028400
> diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
> index 607a89e..f3af568 100644
> --- a/src/gallium/drivers/r600/r600_state.c
> +++ b/src/gallium/drivers/r600/r600_state.c
> @@ -2549,39 +2549,9 @@ void r600_init_atom_start_cs(struct r600_context *rctx)
> r600_store_value(cb, 0); /* R_0288CC_SQ_PGM_CF_OFFSET_PS */
> r600_store_value(cb, 0); /* R_0288D0_SQ_PGM_CF_OFFSET_VS */
>
> - r600_store_context_reg_seq(cb, R_028380_SQ_VTX_SEMANTIC_0, 34);
> - r600_store_value(cb, 0); /* R_028380_SQ_VTX_SEMANTIC_0 */
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0);
> - r600_store_value(cb, 0); /* R_0283FC_SQ_VTX_SEMANTIC_31 */
> + r600_store_context_reg(cb, R_0288E0_SQ_VTX_SEMANTIC_CLEAR, ~0);
> +
> + r600_store_context_reg_seq(cb, R_028400_VGT_MAX_VTX_INDX, 2);
> r600_store_value(cb, ~0); /* R_028400_VGT_MAX_VTX_INDX */
> r600_store_value(cb, 0); /* R_028404_VGT_MIN_VTX_INDX */
>
> diff --git a/src/gallium/drivers/r600/r600d.h b/src/gallium/drivers/r600/r600d.h
> index 8cb5fea..78fa6b6 100644
> --- a/src/gallium/drivers/r600/r600d.h
> +++ b/src/gallium/drivers/r600/r600d.h
> @@ -2823,6 +2823,7 @@
> #define R_0283F4_SQ_VTX_SEMANTIC_29 0x0283F4
> #define R_0283F8_SQ_VTX_SEMANTIC_30 0x0283F8
> #define R_0283FC_SQ_VTX_SEMANTIC_31 0x0283FC
> +#define R_0288E0_SQ_VTX_SEMANTIC_CLEAR 0x0288E0
> #define R_028400_VGT_MAX_VTX_INDX 0x028400
> #define S_028400_MAX_INDX(x) (((x) & 0xFFFFFFFF) << 0)
> #define G_028400_MAX_INDX(x) (((x) >> 0) & 0xFFFFFFFF)
> --
> 1.7.9.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list