gallivm: Simplify lp_build_mipmap_level_sizes' interface.
This commit is contained in:
parent
4eb222a3e6
commit
05fe33b71c
|
@ -513,61 +513,34 @@ lp_build_mipmap_level_sizes(struct lp_build_sample_context *bld,
|
||||||
LLVMValueRef width_vec,
|
LLVMValueRef width_vec,
|
||||||
LLVMValueRef height_vec,
|
LLVMValueRef height_vec,
|
||||||
LLVMValueRef depth_vec,
|
LLVMValueRef depth_vec,
|
||||||
LLVMValueRef ilevel0,
|
LLVMValueRef ilevel,
|
||||||
LLVMValueRef ilevel1,
|
|
||||||
LLVMValueRef row_stride_array,
|
LLVMValueRef row_stride_array,
|
||||||
LLVMValueRef img_stride_array,
|
LLVMValueRef img_stride_array,
|
||||||
LLVMValueRef *width0_vec,
|
LLVMValueRef *out_width_vec,
|
||||||
LLVMValueRef *width1_vec,
|
LLVMValueRef *out_height_vec,
|
||||||
LLVMValueRef *height0_vec,
|
LLVMValueRef *out_depth_vec,
|
||||||
LLVMValueRef *height1_vec,
|
LLVMValueRef *row_stride_vec,
|
||||||
LLVMValueRef *depth0_vec,
|
LLVMValueRef *img_stride_vec)
|
||||||
LLVMValueRef *depth1_vec,
|
|
||||||
LLVMValueRef *row_stride0_vec,
|
|
||||||
LLVMValueRef *row_stride1_vec,
|
|
||||||
LLVMValueRef *img_stride0_vec,
|
|
||||||
LLVMValueRef *img_stride1_vec)
|
|
||||||
{
|
{
|
||||||
const unsigned mip_filter = bld->static_state->min_mip_filter;
|
LLVMValueRef ilevel_vec;
|
||||||
LLVMValueRef ilevel0_vec, ilevel1_vec;
|
|
||||||
|
|
||||||
ilevel0_vec = lp_build_broadcast_scalar(&bld->int_coord_bld, ilevel0);
|
ilevel_vec = lp_build_broadcast_scalar(&bld->int_coord_bld, ilevel);
|
||||||
if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR)
|
|
||||||
ilevel1_vec = lp_build_broadcast_scalar(&bld->int_coord_bld, ilevel1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compute width, height, depth at mipmap level 'ilevel0'
|
* Compute width, height, depth at mipmap level 'ilevel'
|
||||||
*/
|
*/
|
||||||
*width0_vec = lp_build_minify(bld, width_vec, ilevel0_vec);
|
*out_width_vec = lp_build_minify(bld, width_vec, ilevel_vec);
|
||||||
if (dims >= 2) {
|
if (dims >= 2) {
|
||||||
*height0_vec = lp_build_minify(bld, height_vec, ilevel0_vec);
|
*out_height_vec = lp_build_minify(bld, height_vec, ilevel_vec);
|
||||||
*row_stride0_vec = lp_build_get_level_stride_vec(bld,
|
*row_stride_vec = lp_build_get_level_stride_vec(bld,
|
||||||
row_stride_array,
|
row_stride_array,
|
||||||
ilevel0);
|
ilevel);
|
||||||
if (dims == 3 || bld->static_state->target == PIPE_TEXTURE_CUBE) {
|
if (dims == 3 || bld->static_state->target == PIPE_TEXTURE_CUBE) {
|
||||||
*img_stride0_vec = lp_build_get_level_stride_vec(bld,
|
*img_stride_vec = lp_build_get_level_stride_vec(bld,
|
||||||
img_stride_array,
|
img_stride_array,
|
||||||
ilevel0);
|
ilevel);
|
||||||
if (dims == 3) {
|
if (dims == 3) {
|
||||||
*depth0_vec = lp_build_minify(bld, depth_vec, ilevel0_vec);
|
*out_depth_vec = lp_build_minify(bld, depth_vec, ilevel_vec);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR) {
|
|
||||||
/* compute width, height, depth for second mipmap level at 'ilevel1' */
|
|
||||||
*width1_vec = lp_build_minify(bld, width_vec, ilevel1_vec);
|
|
||||||
if (dims >= 2) {
|
|
||||||
*height1_vec = lp_build_minify(bld, height_vec, ilevel1_vec);
|
|
||||||
*row_stride1_vec = lp_build_get_level_stride_vec(bld,
|
|
||||||
row_stride_array,
|
|
||||||
ilevel1);
|
|
||||||
if (dims == 3 || bld->static_state->target == PIPE_TEXTURE_CUBE) {
|
|
||||||
*img_stride1_vec = lp_build_get_level_stride_vec(bld,
|
|
||||||
img_stride_array,
|
|
||||||
ilevel1);
|
|
||||||
if (dims == 3) {
|
|
||||||
*depth1_vec = lp_build_minify(bld, depth_vec, ilevel1_vec);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -327,20 +327,14 @@ lp_build_mipmap_level_sizes(struct lp_build_sample_context *bld,
|
||||||
LLVMValueRef width_vec,
|
LLVMValueRef width_vec,
|
||||||
LLVMValueRef height_vec,
|
LLVMValueRef height_vec,
|
||||||
LLVMValueRef depth_vec,
|
LLVMValueRef depth_vec,
|
||||||
LLVMValueRef ilevel0,
|
LLVMValueRef ilevel,
|
||||||
LLVMValueRef ilevel1,
|
|
||||||
LLVMValueRef row_stride_array,
|
LLVMValueRef row_stride_array,
|
||||||
LLVMValueRef img_stride_array,
|
LLVMValueRef img_stride_array,
|
||||||
LLVMValueRef *width0_vec,
|
LLVMValueRef *out_width_vec,
|
||||||
LLVMValueRef *width1_vec,
|
LLVMValueRef *out_height_vec,
|
||||||
LLVMValueRef *height0_vec,
|
LLVMValueRef *out_depth_vec,
|
||||||
LLVMValueRef *height1_vec,
|
LLVMValueRef *row_stride_vec,
|
||||||
LLVMValueRef *depth0_vec,
|
LLVMValueRef *img_stride_vec);
|
||||||
LLVMValueRef *depth1_vec,
|
|
||||||
LLVMValueRef *row_stride0_vec,
|
|
||||||
LLVMValueRef *row_stride1_vec,
|
|
||||||
LLVMValueRef *img_stride0_vec,
|
|
||||||
LLVMValueRef *img_stride1_vec);
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -1002,13 +1002,17 @@ lp_build_sample_aos(struct lp_build_sample_context *bld,
|
||||||
|
|
||||||
/* compute image size(s) of source mipmap level(s) */
|
/* compute image size(s) of source mipmap level(s) */
|
||||||
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
||||||
ilevel0, ilevel1,
|
ilevel0,
|
||||||
row_stride_array, img_stride_array,
|
row_stride_array, img_stride_array,
|
||||||
&width0_vec, &width1_vec,
|
&width0_vec, &height0_vec, &depth0_vec,
|
||||||
&height0_vec, &height1_vec,
|
&row_stride0_vec, &img_stride0_vec);
|
||||||
&depth0_vec, &depth1_vec,
|
if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR) {
|
||||||
&row_stride0_vec, &row_stride1_vec,
|
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
||||||
&img_stride0_vec, &img_stride1_vec);
|
ilevel1,
|
||||||
|
row_stride_array, img_stride_array,
|
||||||
|
&width1_vec, &height1_vec, &depth1_vec,
|
||||||
|
&row_stride1_vec, &img_stride1_vec);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get pointer(s) to image data for mipmap level(s).
|
* Get pointer(s) to image data for mipmap level(s).
|
||||||
|
|
|
@ -975,13 +975,17 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
|
||||||
|
|
||||||
/* compute image size(s) of source mipmap level(s) */
|
/* compute image size(s) of source mipmap level(s) */
|
||||||
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
||||||
ilevel0, ilevel1,
|
ilevel0,
|
||||||
row_stride_array, img_stride_array,
|
row_stride_array, img_stride_array,
|
||||||
&width0_vec, &width1_vec,
|
&width0_vec, &height0_vec, &depth0_vec,
|
||||||
&height0_vec, &height1_vec,
|
&row_stride0_vec, &img_stride0_vec);
|
||||||
&depth0_vec, &depth1_vec,
|
if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR) {
|
||||||
&row_stride0_vec, &row_stride1_vec,
|
lp_build_mipmap_level_sizes(bld, dims, width_vec, height_vec, depth_vec,
|
||||||
&img_stride0_vec, &img_stride1_vec);
|
ilevel1,
|
||||||
|
row_stride_array, img_stride_array,
|
||||||
|
&width1_vec, &height1_vec, &depth1_vec,
|
||||||
|
&row_stride1_vec, &img_stride1_vec);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get pointer(s) to image data for mipmap level(s).
|
* Get pointer(s) to image data for mipmap level(s).
|
||||||
|
|
Loading…
Reference in New Issue