mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-04 02:18:16 +02:00
draw: Fullfil the new min_lod/max_lod/lod_bias/border_color dynamic state
This commit is contained in:
parent
049a8cce76
commit
998cf11e13
3 changed files with 33 additions and 0 deletions
|
|
@ -77,6 +77,11 @@ init_globals(struct draw_llvm *llvm)
|
|||
elem_types[DRAW_JIT_TEXTURE_DATA] =
|
||||
LLVMArrayType(LLVMPointerType(LLVMInt8Type(), 0),
|
||||
DRAW_MAX_TEXTURE_LEVELS);
|
||||
elem_types[DRAW_JIT_TEXTURE_MIN_LOD] = LLVMFloatType();
|
||||
elem_types[DRAW_JIT_TEXTURE_MAX_LOD] = LLVMFloatType();
|
||||
elem_types[DRAW_JIT_TEXTURE_LOD_BIAS] = LLVMFloatType();
|
||||
elem_types[DRAW_JIT_TEXTURE_BORDER_COLOR] =
|
||||
LLVMArrayType(LLVMFloatType(), 4);
|
||||
|
||||
texture_type = LLVMStructType(elem_types, Elements(elem_types), 0);
|
||||
|
||||
|
|
@ -101,6 +106,18 @@ init_globals(struct draw_llvm *llvm)
|
|||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, data,
|
||||
llvm->target, texture_type,
|
||||
DRAW_JIT_TEXTURE_DATA);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, min_lod,
|
||||
llvm->target, texture_type,
|
||||
DRAW_JIT_TEXTURE_MIN_LOD);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, max_lod,
|
||||
llvm->target, texture_type,
|
||||
DRAW_JIT_TEXTURE_MAX_LOD);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, lod_bias,
|
||||
llvm->target, texture_type,
|
||||
DRAW_JIT_TEXTURE_LOD_BIAS);
|
||||
LP_CHECK_MEMBER_OFFSET(struct draw_jit_texture, border_color,
|
||||
llvm->target, texture_type,
|
||||
DRAW_JIT_TEXTURE_BORDER_COLOR);
|
||||
LP_CHECK_STRUCT_SIZE(struct draw_jit_texture,
|
||||
llvm->target, texture_type);
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ struct draw_jit_texture
|
|||
uint32_t row_stride[DRAW_MAX_TEXTURE_LEVELS];
|
||||
uint32_t img_stride[DRAW_MAX_TEXTURE_LEVELS];
|
||||
const void *data[DRAW_MAX_TEXTURE_LEVELS];
|
||||
float min_lod;
|
||||
float max_lod;
|
||||
float lod_bias;
|
||||
float border_color[4];
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
@ -65,6 +69,10 @@ enum {
|
|||
DRAW_JIT_TEXTURE_ROW_STRIDE,
|
||||
DRAW_JIT_TEXTURE_IMG_STRIDE,
|
||||
DRAW_JIT_TEXTURE_DATA,
|
||||
DRAW_JIT_TEXTURE_MIN_LOD,
|
||||
DRAW_JIT_TEXTURE_MAX_LOD,
|
||||
DRAW_JIT_TEXTURE_LOD_BIAS,
|
||||
DRAW_JIT_TEXTURE_BORDER_COLOR,
|
||||
DRAW_JIT_TEXTURE_NUM_FIELDS /* number of fields above */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -146,6 +146,10 @@ DRAW_LLVM_TEXTURE_MEMBER(last_level, DRAW_JIT_TEXTURE_LAST_LEVEL, TRUE)
|
|||
DRAW_LLVM_TEXTURE_MEMBER(row_stride, DRAW_JIT_TEXTURE_ROW_STRIDE, FALSE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(img_stride, DRAW_JIT_TEXTURE_IMG_STRIDE, FALSE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(data_ptr, DRAW_JIT_TEXTURE_DATA, FALSE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(min_lod, DRAW_JIT_TEXTURE_MIN_LOD, TRUE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(max_lod, DRAW_JIT_TEXTURE_MAX_LOD, TRUE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(lod_bias, DRAW_JIT_TEXTURE_LOD_BIAS, TRUE)
|
||||
DRAW_LLVM_TEXTURE_MEMBER(border_color, DRAW_JIT_TEXTURE_BORDER_COLOR, FALSE)
|
||||
|
||||
|
||||
static void
|
||||
|
|
@ -207,6 +211,10 @@ draw_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state,
|
|||
sampler->dynamic_state.base.row_stride = draw_llvm_texture_row_stride;
|
||||
sampler->dynamic_state.base.img_stride = draw_llvm_texture_img_stride;
|
||||
sampler->dynamic_state.base.data_ptr = draw_llvm_texture_data_ptr;
|
||||
sampler->dynamic_state.base.min_lod = draw_llvm_texture_min_lod;
|
||||
sampler->dynamic_state.base.max_lod = draw_llvm_texture_max_lod;
|
||||
sampler->dynamic_state.base.lod_bias = draw_llvm_texture_lod_bias;
|
||||
sampler->dynamic_state.base.border_color = draw_llvm_texture_border_color;
|
||||
sampler->dynamic_state.static_state = static_state;
|
||||
sampler->dynamic_state.context_ptr = context_ptr;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue