llvmpipe: pass number of samplers into llvm sampler code.
This is to be used later for indirect texture access Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
This commit is contained in:
@@ -174,7 +174,7 @@ generate_compute(struct llvmpipe_context *lp,
|
||||
builder = gallivm->builder;
|
||||
assert(builder);
|
||||
LLVMPositionBuilderAtEnd(builder, block);
|
||||
sampler = lp_llvm_sampler_soa_create(key->samplers);
|
||||
sampler = lp_llvm_sampler_soa_create(key->samplers, key->nr_samplers);
|
||||
image = lp_llvm_image_soa_create(lp_cs_variant_key_images(key));
|
||||
|
||||
struct lp_build_loop_state loop_state[4];
|
||||
|
||||
@@ -2916,7 +2916,7 @@ generate_fragment(struct llvmpipe_context *lp,
|
||||
}
|
||||
|
||||
/* code generated texture sampling */
|
||||
sampler = lp_llvm_sampler_soa_create(key->samplers);
|
||||
sampler = lp_llvm_sampler_soa_create(key->samplers, key->nr_samplers);
|
||||
image = lp_llvm_image_soa_create(lp_fs_variant_key_images(key));
|
||||
|
||||
num_fs = 16 / fs_type.length; /* number of loops per 4x4 stamp */
|
||||
|
||||
@@ -76,6 +76,7 @@ struct lp_llvm_sampler_soa
|
||||
struct lp_build_sampler_soa base;
|
||||
|
||||
struct llvmpipe_sampler_dynamic_state dynamic_state;
|
||||
unsigned nr_samplers;
|
||||
};
|
||||
|
||||
struct llvmpipe_image_dynamic_state
|
||||
@@ -385,7 +386,8 @@ lp_llvm_sampler_soa_emit_size_query(const struct lp_build_sampler_soa *base,
|
||||
|
||||
|
||||
struct lp_build_sampler_soa *
|
||||
lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state)
|
||||
lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state,
|
||||
unsigned nr_samplers)
|
||||
{
|
||||
struct lp_llvm_sampler_soa *sampler;
|
||||
|
||||
@@ -418,6 +420,7 @@ lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state)
|
||||
|
||||
sampler->dynamic_state.static_state = static_state;
|
||||
|
||||
sampler->nr_samplers = nr_samplers;
|
||||
return &sampler->base;
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@ struct lp_image_static_state;
|
||||
*
|
||||
*/
|
||||
struct lp_build_sampler_soa *
|
||||
lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *key);
|
||||
lp_llvm_sampler_soa_create(const struct lp_sampler_static_state *key,
|
||||
unsigned nr_samplers);
|
||||
|
||||
struct lp_build_image_soa *
|
||||
lp_llvm_image_soa_create(const struct lp_image_static_state *key);
|
||||
|
||||
Reference in New Issue
Block a user