summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/llvmpipe/lp_state_fs.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2022-10-26 15:32:42 -0600
committerMarge Bot <emma+marge@anholt.net>2022-10-27 16:10:47 +0000
commit341babb8a79ae3906d39827ea40ff92c50fdb391 (patch)
tree6f2e8fb9743d6ddf6aff90fb206dad2a5dd00374 /src/gallium/drivers/llvmpipe/lp_state_fs.c
parent4f4aacad19ed0e0aee79632f416eb14fc48c0c87 (diff)
llvmpipe: asst. clean-ups in lp_state_fs.c
Move var decls to first use. Add const qualifiers, comments, etc. Signed-off-by: Brian Paul <brianp@vmware.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19330>
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_state_fs.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c87
1 files changed, 41 insertions, 46 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index e10e10836fa..86947651deb 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -1674,7 +1674,7 @@ store_unswizzled_block(struct gallivm_state *gallivm,
LLVMValueRef stride,
unsigned block_width,
unsigned block_height,
- LLVMValueRef* src,
+ LLVMValueRef src[], // [src_count]
struct lp_type src_type,
unsigned src_count,
unsigned src_alignment)
@@ -2301,8 +2301,7 @@ convert_alpha(struct gallivm_state *gallivm,
LLVMValueRef* src_alpha)
{
LLVMBuilderRef builder = gallivm->builder;
- unsigned i, j;
- unsigned length = row_type.length;
+ const unsigned length = row_type.length;
row_type.length = alpha_type.length;
/* Twiddle the alpha to match pixels */
@@ -2312,7 +2311,7 @@ convert_alpha(struct gallivm_state *gallivm,
* TODO this should use single lp_build_conv call for
* src_count == 1 && dst_channels == 1 case (dropping the concat below)
*/
- for (i = 0; i < block_height; ++i) {
+ for (unsigned i = 0; i < block_height; ++i) {
lp_build_conv(gallivm, alpha_type, row_type, &src_alpha[i], 1,
&src_alpha[i], 1);
}
@@ -2327,7 +2326,7 @@ convert_alpha(struct gallivm_state *gallivm,
} else {
/* If there are more srcs than rows then we need to split alpha up */
if (src_count > block_height) {
- for (i = src_count; i > 0; --i) {
+ for (unsigned i = src_count; i > 0; --i) {
unsigned pixels = block_size / src_count;
unsigned idx = i - 1;
@@ -2341,7 +2340,7 @@ convert_alpha(struct gallivm_state *gallivm,
* row
*/
if (src_count == block_size) {
- for (i = 0; i < src_count; ++i) {
+ for (unsigned i = 0; i < src_count; ++i) {
src_alpha[i] = lp_build_broadcast(gallivm,
lp_build_vec_type(gallivm, row_type), src_alpha[i]);
}
@@ -2357,7 +2356,7 @@ convert_alpha(struct gallivm_state *gallivm,
}
/* Broadcast alpha across all channels, e.g. a1a2 to a1a1a1a1a2a2a2a2 */
- for (j = 0; j < row_type.length; ++j) {
+ for (unsigned j = 0; j < row_type.length; ++j) {
if (j < pixels * channels) {
shuffles[j] = lp_build_const_int32(gallivm, j / channels);
} else {
@@ -2365,7 +2364,7 @@ convert_alpha(struct gallivm_state *gallivm,
}
}
- for (i = 0; i < src_count; ++i) {
+ for (unsigned i = 0; i < src_count; ++i) {
unsigned idx1 = i, idx2 = i;
if (alpha_span > 1){
@@ -2420,43 +2419,28 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
LLVMValueRef src[4 * 4];
LLVMValueRef src1[4 * 4];
LLVMValueRef dst[4 * 4];
- LLVMValueRef blend_color;
- LLVMValueRef blend_alpha;
- LLVMValueRef i32_zero;
- LLVMValueRef check_mask;
- LLVMValueRef undef_src_val;
struct lp_build_mask_context mask_ctx;
- struct lp_type mask_type;
- struct lp_type blend_type;
- struct lp_type row_type;
- struct lp_type dst_type;
- struct lp_type ls_type;
unsigned char swizzle[TGSI_NUM_CHANNELS];
- unsigned vector_width;
unsigned src_channels = TGSI_NUM_CHANNELS;
- unsigned dst_channels;
- unsigned dst_count;
- unsigned src_count;
- const struct util_format_description* out_format_desc = util_format_description(out_format);
-
- unsigned dst_alignment;
+ const struct util_format_description *out_format_desc =
+ util_format_description(out_format);
bool pad_inline = is_arithmetic_format(out_format_desc);
- bool has_alpha = false;
- const boolean dual_source_blend = variant->key.blend.rt[0].blend_enable &&
- util_blend_state_is_dual(&variant->key.blend, 0);
+ const boolean dual_source_blend =
+ variant->key.blend.rt[0].blend_enable &&
+ util_blend_state_is_dual(&variant->key.blend, 0);
const boolean is_1d = variant->key.resource_1d;
- boolean twiddle_after_convert = FALSE;
- unsigned num_fullblock_fs = is_1d ? 2 * num_fs : num_fs;
+ const unsigned num_fullblock_fs = is_1d ? 2 * num_fs : num_fs;
LLVMValueRef fpstate = 0;
LLVMTypeRef fs_vec_type = lp_build_vec_type(gallivm, fs_type);
/* Get type from output format */
+ struct lp_type row_type, dst_type;
lp_blend_type_from_format_desc(out_format_desc, &row_type);
lp_mem_type_from_format_desc(out_format_desc, &dst_type);
@@ -2477,7 +2461,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
lp_build_fpstate_set_denorms_zero(gallivm, FALSE);
}
- mask_type = lp_int32_vec4_type();
+ struct lp_type mask_type = lp_int32_vec4_type();
mask_type.length = fs_type.length;
for (unsigned i = num_fs; i < num_fullblock_fs; i++) {
@@ -2486,7 +2470,8 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
/* Do not bother executing code when mask is empty.. */
if (do_branch) {
- check_mask = LLVMConstNull(lp_build_int_vec_type(gallivm, mask_type));
+ LLVMValueRef check_mask =
+ LLVMConstNull(lp_build_int_vec_type(gallivm, mask_type));
for (unsigned i = 0; i < num_fullblock_fs; ++i) {
check_mask = LLVMBuildOr(builder, check_mask, fs_mask[i], "");
@@ -2497,17 +2482,19 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
}
partial_mask |= !variant->opaque;
- i32_zero = lp_build_const_int32(gallivm, 0);
+ LLVMValueRef i32_zero = lp_build_const_int32(gallivm, 0);
- undef_src_val = lp_build_undef(gallivm, fs_type);
+ LLVMValueRef undef_src_val = lp_build_undef(gallivm, fs_type);
row_type.length = fs_type.length;
- vector_width = dst_type.floating ? lp_native_vector_width : lp_integer_vector_width;
+ unsigned vector_width =
+ dst_type.floating ? lp_native_vector_width : lp_integer_vector_width;
/* Compute correct swizzle and count channels */
memset(swizzle, LP_BLD_SWIZZLE_DONTCARE, TGSI_NUM_CHANNELS);
- dst_channels = 0;
+ unsigned dst_channels = 0;
+ bool has_alpha = false;
for (unsigned i = 0; i < TGSI_NUM_CHANNELS; ++i) {
/* Ensure channel is used */
if (out_format_desc->swizzle[i] >= TGSI_NUM_CHANNELS) {
@@ -2682,6 +2669,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
* unpack only with 128bit vectors).
* Note: for 16bit sizes really need matching pack conversion code
*/
+ boolean twiddle_after_convert = FALSE;
if (!is_1d && dst_channels != 3 && dst_type.width == 8) {
twiddle_after_convert = TRUE;
}
@@ -2689,6 +2677,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
/*
* Pixel twiddle from fragment shader order to memory order
*/
+ unsigned src_count;
if (!twiddle_after_convert) {
src_count = generate_fs_twiddle(gallivm, fs_type, num_fullblock_fs,
dst_channels, fs_src, src, pad_inline);
@@ -2722,7 +2711,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
fs_vec_type = lp_build_vec_type(gallivm, fs_type);
}
- blend_type = row_type;
+ struct lp_type blend_type = row_type;
mask_type.length = 4;
/* Convert src to row_type */
@@ -2743,7 +2732,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
assert(src_count >= (vector_width / bits));
- dst_count = src_count / (vector_width / bits);
+ const unsigned dst_count = src_count / (vector_width / bits);
combined = lp_build_concat_n(gallivm, row_type, src, src_count,
src, dst_count);
@@ -2768,12 +2757,15 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
/*
* Blend Colour conversion
*/
- blend_color = lp_jit_context_f_blend_color(gallivm, context_type, context_ptr);
+ LLVMValueRef blend_color =
+ lp_jit_context_f_blend_color(gallivm, context_type, context_ptr);
blend_color = LLVMBuildPointerCast(builder, blend_color,
- LLVMPointerType(fs_vec_type, 0),
+ LLVMPointerType(fs_vec_type, 0),
"");
- blend_color = LLVMBuildLoad2(builder, fs_vec_type, LLVMBuildGEP2(builder, fs_vec_type, blend_color,
- &i32_zero, 1, ""), "");
+ blend_color = LLVMBuildLoad2(builder, fs_vec_type,
+ LLVMBuildGEP2(builder, fs_vec_type,
+ blend_color,
+ &i32_zero, 1, ""), "");
/* Convert */
lp_build_conv(gallivm, fs_type, blend_type, &blend_color, 1,
@@ -2810,9 +2802,10 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
}
/* Extract alpha */
- blend_alpha = lp_build_extract_broadcast(gallivm, blend_type, row_type,
- blend_color,
- lp_build_const_int32(gallivm, 3));
+ LLVMValueRef blend_alpha =
+ lp_build_extract_broadcast(gallivm, blend_type, row_type,
+ blend_color,
+ lp_build_const_int32(gallivm, 3));
/* Swizzle to appropriate channels, e.g. from RGBA to BGRA BGRA */
pad_inline &= (dst_channels * (block_size / src_count) * row_type.width)
@@ -2899,6 +2892,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
/*
* Load dst from memory
*/
+ unsigned dst_count;
if (src_count < block_height) {
dst_count = block_height;
} else {
@@ -2924,6 +2918,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
* 1d tex but can't distinguish here) so need to stick with per-pixel
* alignment in this case.
*/
+ unsigned dst_alignment;
if (is_1d) {
dst_alignment = (out_format_desc->block.bits + 7)/(out_format_desc->block.width * 8);
} else {
@@ -2937,7 +2932,7 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
*/
dst_alignment = MIN2(16, dst_alignment);
- ls_type = dst_type;
+ struct lp_type ls_type = dst_type;
if (dst_count > src_count) {
if ((dst_type.width == 8 || dst_type.width == 16) &&