[Mesa-dev] [PATCH 03/25] amd/common: cleanup DATA_FORMAT/NUM_FORMAT field names
Marek Olšák
maraeo at gmail.com
Mon Dec 17 03:23:45 UTC 2018
The definitions weren't changed, but the values were. The names need to be
different, so that si_debug.c prints both the GFX6 and GFX9 values.
Marek
On Thu, Dec 6, 2018 at 9:01 AM Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> The definition wasn't actually changed in gfx9, so having the suffix
> makes no sense.
> ---
> src/amd/common/ac_nir_to_llvm.c | 2 +-
> src/amd/common/gfx9d.h | 12 ++++++------
> src/amd/common/sid.h | 12 ++++++------
> src/amd/vulkan/radv_image.c | 8 ++++----
> src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c | 6 +++---
> src/gallium/drivers/radeonsi/si_state.c | 10 +++++-----
> 6 files changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/src/amd/common/ac_nir_to_llvm.c
> b/src/amd/common/ac_nir_to_llvm.c
> index fe65dfff8f3..cbb5be4b1a2 100644
> --- a/src/amd/common/ac_nir_to_llvm.c
> +++ b/src/amd/common/ac_nir_to_llvm.c
> @@ -1238,21 +1238,21 @@ static LLVMValueRef lower_gather4_integer(struct
> ac_llvm_context *ctx,
> if (stype == GLSL_TYPE_UINT)
> /* Create a NUM FORMAT - 0x2 or 0x4 - USCALED or
> UINT */
> tmp = LLVMBuildSelect(ctx->builder,
> compare_cube_wa, LLVMConstInt(ctx->i32, 0x8000000, false),
> LLVMConstInt(ctx->i32,
> 0x10000000, false), "");
> else
> /* Create a NUM FORMAT - 0x3 or 0x5 - SSCALED or
> SINT */
> tmp = LLVMBuildSelect(ctx->builder,
> compare_cube_wa, LLVMConstInt(ctx->i32, 0xc000000, false),
> LLVMConstInt(ctx->i32,
> 0x14000000, false), "");
>
> /* replace the NUM FORMAT in the descriptor */
> - tmp2 = LLVMBuildAnd(ctx->builder, tmp2,
> LLVMConstInt(ctx->i32, C_008F14_NUM_FORMAT_GFX6, false), "");
> + tmp2 = LLVMBuildAnd(ctx->builder, tmp2,
> LLVMConstInt(ctx->i32, C_008F14_NUM_FORMAT, false), "");
> tmp2 = LLVMBuildOr(ctx->builder, tmp2, tmp, "");
>
> args->resource = LLVMBuildInsertElement(ctx->builder,
> args->resource, tmp2, ctx->i32_1, "");
>
> /* don't modify the coordinates for this case */
> for (unsigned c = 0; c < 2; ++c)
> args->coords[c] = LLVMBuildSelect(
> ctx->builder, compare_cube_wa,
> orig_coords[c], args->coords[c], "");
> }
> diff --git a/src/amd/common/gfx9d.h b/src/amd/common/gfx9d.h
> index 2e790c54699..5d3de5842a1 100644
> --- a/src/amd/common/gfx9d.h
> +++ b/src/amd/common/gfx9d.h
> @@ -1262,23 +1262,23 @@
> #define S_030F14_COUNT_HI(x)
> (((unsigned)(x) & 0x7FFFFFFF) << 0)
> #define G_030F14_COUNT_HI(x)
> (((x) >> 0) & 0x7FFFFFFF)
> #define C_030F14_COUNT_HI
> 0x80000000
> #define R_008F14_SQ_IMG_RSRC_WORD1
> 0x008F14
> #define S_008F14_BASE_ADDRESS_HI(x)
> (((unsigned)(x) & 0xFF) << 0)
> #define G_008F14_BASE_ADDRESS_HI(x)
> (((x) >> 0) & 0xFF)
> #define C_008F14_BASE_ADDRESS_HI
> 0xFFFFFF00
> #define S_008F14_MIN_LOD(x)
> (((unsigned)(x) & 0xFFF) << 8)
> #define G_008F14_MIN_LOD(x)
> (((x) >> 8) & 0xFFF)
> #define C_008F14_MIN_LOD
> 0xFFF000FF
> -#define S_008F14_DATA_FORMAT_GFX9(x)
> (((unsigned)(x) & 0x3F) << 20)
> -#define G_008F14_DATA_FORMAT_GFX9(x)
> (((x) >> 20) & 0x3F)
> -#define C_008F14_DATA_FORMAT_GFX9
> 0xFC0FFFFF
> +#define S_008F14_DATA_FORMAT(x)
> (((unsigned)(x) & 0x3F) << 20)
> +#define G_008F14_DATA_FORMAT(x)
> (((x) >> 20) & 0x3F)
> +#define C_008F14_DATA_FORMAT
> 0xFC0FFFFF
> #define V_008F14_IMG_DATA_FORMAT_INVALID 0x00
> #define V_008F14_IMG_DATA_FORMAT_8 0x01
> #define V_008F14_IMG_DATA_FORMAT_16 0x02
> #define V_008F14_IMG_DATA_FORMAT_8_8 0x03
> #define V_008F14_IMG_DATA_FORMAT_32 0x04
> #define V_008F14_IMG_DATA_FORMAT_16_16 0x05
> #define V_008F14_IMG_DATA_FORMAT_10_11_11 0x06
> #define V_008F14_IMG_DATA_FORMAT_11_11_10 0x07
> #define V_008F14_IMG_DATA_FORMAT_10_10_10_2 0x08
> #define V_008F14_IMG_DATA_FORMAT_2_10_10_10 0x09
> @@ -1329,23 +1329,23 @@
> #define V_008F14_IMG_DATA_FORMAT_N_IN_16_16_16_16 0x36
> #define V_008F14_IMG_DATA_FORMAT_N_IN_16_AS_16_16_16_16 0x37
> #define V_008F14_IMG_DATA_FORMAT_RESERVED_56 0x38
> #define V_008F14_IMG_DATA_FORMAT_4_4 0x39
> #define V_008F14_IMG_DATA_FORMAT_6_5_5 0x3A
> #define V_008F14_IMG_DATA_FORMAT_S8_16 0x3B
> #define V_008F14_IMG_DATA_FORMAT_S8_32 0x3C
> #define V_008F14_IMG_DATA_FORMAT_8_AS_32 0x3D
> #define V_008F14_IMG_DATA_FORMAT_8_AS_32_32 0x3E
> #define V_008F14_IMG_DATA_FORMAT_32_AS_32_32_32_32 0x3F
> -#define S_008F14_NUM_FORMAT_GFX9(x)
> (((unsigned)(x) & 0x0F) << 26)
> -#define G_008F14_NUM_FORMAT_GFX9(x)
> (((x) >> 26) & 0x0F)
> -#define C_008F14_NUM_FORMAT_GFX9
> 0xC3FFFFFF
> +#define S_008F14_NUM_FORMAT(x)
> (((unsigned)(x) & 0x0F) << 26)
> +#define G_008F14_NUM_FORMAT(x)
> (((x) >> 26) & 0x0F)
> +#define C_008F14_NUM_FORMAT
> 0xC3FFFFFF
> #define V_008F14_IMG_NUM_FORMAT_UNORM 0x00
> #define V_008F14_IMG_NUM_FORMAT_SNORM 0x01
> #define V_008F14_IMG_NUM_FORMAT_USCALED 0x02
> #define V_008F14_IMG_NUM_FORMAT_SSCALED 0x03
> #define V_008F14_IMG_NUM_FORMAT_UINT 0x04
> #define V_008F14_IMG_NUM_FORMAT_SINT 0x05
> #define V_008F14_IMG_NUM_FORMAT_RESERVED_6 0x06
> #define V_008F14_IMG_NUM_FORMAT_FLOAT 0x07
> #define V_008F14_IMG_NUM_FORMAT_METADATA 0x08
> #define V_008F14_IMG_NUM_FORMAT_SRGB 0x09
> diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h
> index 49683f1aa5a..a6d0bc2fe42 100644
> --- a/src/amd/common/sid.h
> +++ b/src/amd/common/sid.h
> @@ -2120,23 +2120,23 @@
> #define S_030F14_COUNT_HI(x)
> (((unsigned)(x) & 0x7FFFFFFF) << 0)
> #define G_030F14_COUNT_HI(x)
> (((x) >> 0) & 0x7FFFFFFF)
> #define C_030F14_COUNT_HI
> 0x80000000
> #define R_008F14_SQ_IMG_RSRC_WORD1
> 0x008F14
> #define S_008F14_BASE_ADDRESS_HI(x)
> (((unsigned)(x) & 0xFF) << 0)
> #define G_008F14_BASE_ADDRESS_HI(x)
> (((x) >> 0) & 0xFF)
> #define C_008F14_BASE_ADDRESS_HI
> 0xFFFFFF00
> #define S_008F14_MIN_LOD(x)
> (((unsigned)(x) & 0xFFF) << 8)
> #define G_008F14_MIN_LOD(x)
> (((x) >> 8) & 0xFFF)
> #define C_008F14_MIN_LOD
> 0xFFF000FF
> -#define S_008F14_DATA_FORMAT_GFX6(x)
> (((unsigned)(x) & 0x3F) << 20)
> -#define G_008F14_DATA_FORMAT_GFX6(x)
> (((x) >> 20) & 0x3F)
> -#define C_008F14_DATA_FORMAT_GFX6
> 0xFC0FFFFF
> +#define S_008F14_DATA_FORMAT(x)
> (((unsigned)(x) & 0x3F) << 20)
> +#define G_008F14_DATA_FORMAT(x)
> (((x) >> 20) & 0x3F)
> +#define C_008F14_DATA_FORMAT
> 0xFC0FFFFF
> #define V_008F14_IMG_DATA_FORMAT_INVALID 0x00
> #define V_008F14_IMG_DATA_FORMAT_8 0x01
> #define V_008F14_IMG_DATA_FORMAT_16 0x02
> #define V_008F14_IMG_DATA_FORMAT_8_8 0x03
> #define V_008F14_IMG_DATA_FORMAT_32 0x04
> #define V_008F14_IMG_DATA_FORMAT_16_16 0x05
> #define V_008F14_IMG_DATA_FORMAT_10_11_11 0x06
> #define V_008F14_IMG_DATA_FORMAT_11_11_10 0x07
> #define V_008F14_IMG_DATA_FORMAT_10_10_10_2 0x08
> #define V_008F14_IMG_DATA_FORMAT_2_10_10_10 0x09
> @@ -2187,23 +2187,23 @@
> #define V_008F14_IMG_DATA_FORMAT_FMASK32_S8_F8 0x36
> #define V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F4 0x37
> #define V_008F14_IMG_DATA_FORMAT_FMASK64_S16_F8 0x38
> #define V_008F14_IMG_DATA_FORMAT_4_4 0x39
> #define V_008F14_IMG_DATA_FORMAT_6_5_5 0x3A
> #define V_008F14_IMG_DATA_FORMAT_1 0x3B
> #define V_008F14_IMG_DATA_FORMAT_1_REVERSED 0x3C
> #define V_008F14_IMG_DATA_FORMAT_32_AS_8 0x3D
> /* not on stoney */
> #define V_008F14_IMG_DATA_FORMAT_32_AS_8_8 0x3E
> /* not on stoney */
> #define V_008F14_IMG_DATA_FORMAT_32_AS_32_32_32_32 0x3F
> -#define S_008F14_NUM_FORMAT_GFX6(x)
> (((unsigned)(x) & 0x0F) << 26)
> -#define G_008F14_NUM_FORMAT_GFX6(x)
> (((x) >> 26) & 0x0F)
> -#define C_008F14_NUM_FORMAT_GFX6
> 0xC3FFFFFF
> +#define S_008F14_NUM_FORMAT(x)
> (((unsigned)(x) & 0x0F) << 26)
> +#define G_008F14_NUM_FORMAT(x)
> (((x) >> 26) & 0x0F)
> +#define C_008F14_NUM_FORMAT
> 0xC3FFFFFF
> #define V_008F14_IMG_NUM_FORMAT_UNORM 0x00
> #define V_008F14_IMG_NUM_FORMAT_SNORM 0x01
> #define V_008F14_IMG_NUM_FORMAT_USCALED 0x02
> #define V_008F14_IMG_NUM_FORMAT_SSCALED 0x03
> #define V_008F14_IMG_NUM_FORMAT_UINT 0x04
> #define V_008F14_IMG_NUM_FORMAT_SINT 0x05
> #define V_008F14_IMG_NUM_FORMAT_SNORM_OGL 0x06
> #define V_008F14_IMG_NUM_FORMAT_FLOAT 0x07
> #define V_008F14_IMG_NUM_FORMAT_RESERVED_8 0x08
> #define V_008F14_IMG_NUM_FORMAT_SRGB 0x09
> diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
> index 090ca70a327..94cde4d19f2 100644
> --- a/src/amd/vulkan/radv_image.c
> +++ b/src/amd/vulkan/radv_image.c
> @@ -528,22 +528,22 @@ si_make_texture_descriptor(struct radv_device
> *device,
> height = 1;
> depth = image->info.array_size;
> } else if (type == V_008F1C_SQ_RSRC_IMG_2D_ARRAY ||
> type == V_008F1C_SQ_RSRC_IMG_2D_MSAA_ARRAY) {
> if (view_type != VK_IMAGE_VIEW_TYPE_3D)
> depth = image->info.array_size;
> } else if (type == V_008F1C_SQ_RSRC_IMG_CUBE)
> depth = image->info.array_size / 6;
>
> state[0] = 0;
> - state[1] = (S_008F14_DATA_FORMAT_GFX6(data_format) |
> - S_008F14_NUM_FORMAT_GFX6(num_format));
> + state[1] = (S_008F14_DATA_FORMAT(data_format) |
> + S_008F14_NUM_FORMAT(num_format));
> state[2] = (S_008F18_WIDTH(width - 1) |
> S_008F18_HEIGHT(height - 1) |
> S_008F18_PERF_MOD(4));
> state[3] = (S_008F1C_DST_SEL_X(radv_map_swizzle(swizzle[0])) |
> S_008F1C_DST_SEL_Y(radv_map_swizzle(swizzle[1])) |
> S_008F1C_DST_SEL_Z(radv_map_swizzle(swizzle[2])) |
> S_008F1C_DST_SEL_W(radv_map_swizzle(swizzle[3])) |
> S_008F1C_BASE_LEVEL(image->info.samples > 1 ?
> 0 : first_level) |
> S_008F1C_LAST_LEVEL(image->info.samples > 1 ?
> @@ -628,22 +628,22 @@ si_make_texture_descriptor(struct radv_device
> *device,
> default:
> assert(0);
> fmask_format =
> V_008F14_IMG_DATA_FORMAT_INVALID;
> }
> num_format = V_008F14_IMG_NUM_FORMAT_UINT;
> }
>
> fmask_state[0] = va >> 8;
> fmask_state[0] |= image->fmask.tile_swizzle;
> fmask_state[1] = S_008F14_BASE_ADDRESS_HI(va >> 40) |
> - S_008F14_DATA_FORMAT_GFX6(fmask_format) |
> - S_008F14_NUM_FORMAT_GFX6(num_format);
> + S_008F14_DATA_FORMAT(fmask_format) |
> + S_008F14_NUM_FORMAT(num_format);
> fmask_state[2] = S_008F18_WIDTH(width - 1) |
> S_008F18_HEIGHT(height - 1);
> fmask_state[3] = S_008F1C_DST_SEL_X(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_Y(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_Z(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_W(V_008F1C_SQ_SEL_X) |
> S_008F1C_TYPE(radv_tex_dim(image->type, view_type,
> image->info.array_size, 0, false, false));
> fmask_state[4] = 0;
> fmask_state[5] = S_008F24_BASE_ARRAY(first_layer);
> fmask_state[6] = 0;
> diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
> b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
> index 6decedc4cce..1cb0f9d1c60 100644
> --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
> +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_mem.c
> @@ -1223,24 +1223,24 @@ si_lower_gather4_integer(struct si_shader_context
> *ctx,
> LLVMConstInt(ctx->i32, 20,
> false), "");
> data_format = LLVMBuildAnd(builder, data_format,
> LLVMConstInt(ctx->i32, (1u <<
> 6) - 1, false), "");
> wa_8888 = LLVMBuildICmp(
> builder, LLVMIntEQ, data_format,
> LLVMConstInt(ctx->i32,
> V_008F14_IMG_DATA_FORMAT_8_8_8_8, false),
> "");
>
> uint32_t wa_num_format =
> return_type == TGSI_RETURN_TYPE_UINT ?
> -
> S_008F14_NUM_FORMAT_GFX6(V_008F14_IMG_NUM_FORMAT_USCALED) :
> -
> S_008F14_NUM_FORMAT_GFX6(V_008F14_IMG_NUM_FORMAT_SSCALED);
> +
> S_008F14_NUM_FORMAT(V_008F14_IMG_NUM_FORMAT_USCALED) :
> +
> S_008F14_NUM_FORMAT(V_008F14_IMG_NUM_FORMAT_SSCALED);
> wa_formats = LLVMBuildAnd(builder, formats,
> - LLVMConstInt(ctx->i32,
> C_008F14_NUM_FORMAT_GFX6, false),
> + LLVMConstInt(ctx->i32,
> C_008F14_NUM_FORMAT, false),
> "");
> wa_formats = LLVMBuildOr(builder, wa_formats,
> LLVMConstInt(ctx->i32,
> wa_num_format, false), "");
>
> formats = LLVMBuildSelect(builder, wa_8888, wa_formats,
> formats, "");
> args->resource = LLVMBuildInsertElement(
> builder, args->resource, formats, ctx->i32_1, "");
> }
>
> if (target == TGSI_TEXTURE_RECT ||
> diff --git a/src/gallium/drivers/radeonsi/si_state.c
> b/src/gallium/drivers/radeonsi/si_state.c
> index 41aa4ef3336..0960f379c4f 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -3821,22 +3821,22 @@ si_make_texture_descriptor(struct si_screen
> *screen,
> height = 1;
> depth = res->array_size;
> } else if (type == V_008F1C_SQ_RSRC_IMG_2D_ARRAY ||
> type == V_008F1C_SQ_RSRC_IMG_2D_MSAA_ARRAY) {
> if (sampler || res->target != PIPE_TEXTURE_3D)
> depth = res->array_size;
> } else if (type == V_008F1C_SQ_RSRC_IMG_CUBE)
> depth = res->array_size / 6;
>
> state[0] = 0;
> - state[1] = (S_008F14_DATA_FORMAT_GFX6(data_format) |
> - S_008F14_NUM_FORMAT_GFX6(num_format));
> + state[1] = (S_008F14_DATA_FORMAT(data_format) |
> + S_008F14_NUM_FORMAT(num_format));
> state[2] = (S_008F18_WIDTH(width - 1) |
> S_008F18_HEIGHT(height - 1) |
> S_008F18_PERF_MOD(4));
> state[3] = (S_008F1C_DST_SEL_X(si_map_swizzle(swizzle[0])) |
> S_008F1C_DST_SEL_Y(si_map_swizzle(swizzle[1])) |
> S_008F1C_DST_SEL_Z(si_map_swizzle(swizzle[2])) |
> S_008F1C_DST_SEL_W(si_map_swizzle(swizzle[3])) |
> S_008F1C_BASE_LEVEL(num_samples > 1 ? 0 : first_level)
> |
> S_008F1C_LAST_LEVEL(num_samples > 1 ?
> util_logbase2(num_samples) :
> @@ -3977,22 +3977,22 @@ si_make_texture_descriptor(struct si_screen
> *screen,
> break;
> default:
> unreachable("invalid nr_samples");
> }
> num_format = V_008F14_IMG_NUM_FORMAT_UINT;
> }
> #undef FMASK
>
> fmask_state[0] = (va >> 8) |
> tex->surface.fmask_tile_swizzle;
> fmask_state[1] = S_008F14_BASE_ADDRESS_HI(va >> 40) |
> - S_008F14_DATA_FORMAT_GFX6(data_format) |
> - S_008F14_NUM_FORMAT_GFX6(num_format);
> + S_008F14_DATA_FORMAT(data_format) |
> + S_008F14_NUM_FORMAT(num_format);
> fmask_state[2] = S_008F18_WIDTH(width - 1) |
> S_008F18_HEIGHT(height - 1);
> fmask_state[3] = S_008F1C_DST_SEL_X(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_Y(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_Z(V_008F1C_SQ_SEL_X) |
> S_008F1C_DST_SEL_W(V_008F1C_SQ_SEL_X) |
> S_008F1C_TYPE(si_tex_dim(screen, tex,
> target, 0));
> fmask_state[4] = 0;
> fmask_state[5] = S_008F24_BASE_ARRAY(first_layer);
> fmask_state[6] = 0;
> @@ -4154,21 +4154,21 @@ si_create_sampler_view_custom(struct pipe_context
> *ctx,
> state->u.tex.first_level,
> state->format);
>
> si_make_texture_descriptor(sctx->screen, tex, true,
> state->target, pipe_format,
> state_swizzle,
> first_level, last_level,
> state->u.tex.first_layer, last_layer,
> width, height, depth,
> view->state, view->fmask_state);
>
> - unsigned num_format = G_008F14_NUM_FORMAT_GFX6(view->state[1]);
> + unsigned num_format = G_008F14_NUM_FORMAT(view->state[1]);
> view->is_integer =
> num_format == V_008F14_IMG_NUM_FORMAT_USCALED ||
> num_format == V_008F14_IMG_NUM_FORMAT_SSCALED ||
> num_format == V_008F14_IMG_NUM_FORMAT_UINT ||
> num_format == V_008F14_IMG_NUM_FORMAT_SINT;
> view->base_level_info = &surflevel[base_level];
> view->base_level = base_level;
> view->block_width = util_format_get_blockwidth(pipe_format);
> return &view->base;
> }
> --
> 2.19.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181216/15e5651f/attachment-0001.html>
More information about the mesa-dev
mailing list