aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2020-05-19 11:51:13 +1000
committerMarge Bot <[email protected]>2020-07-02 04:12:16 +0000
commit30c5cbbcd206aa55f8dad4cdc96407642d0e98a8 (patch)
tree2b6a11443383a65c12fcebce230355bafe1c1247 /src/gallium
parent6528a24cc525258cc3f368e1a7e3e59ec037ff0d (diff)
llvmpipe: pass number of samplers into llvm sampler code.
This is to be used later for indirect texture access Reviewed-by: Roland Scheidegger <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_cs.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_sample.c5
-rw-r--r--src/gallium/drivers/llvmpipe/lp_tex_sample.h3
4 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c
index 31d42e3ad6d..a3daf6a503b 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_cs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c
@@ -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];
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index 6e48b34622f..1d57f2553d2 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -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 */
diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample.c b/src/gallium/drivers/llvmpipe/lp_tex_sample.c
index e0285c70e5b..d0e6d99082c 100644
--- a/src/gallium/drivers/llvmpipe/lp_tex_sample.c
+++ b/src/gallium/drivers/llvmpipe/lp_tex_sample.c
@@ -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;
}
diff --git a/src/gallium/drivers/llvmpipe/lp_tex_sample.h b/src/gallium/drivers/llvmpipe/lp_tex_sample.h
index ce60f21792e..5deff631499 100644
--- a/src/gallium/drivers/llvmpipe/lp_tex_sample.h
+++ b/src/gallium/drivers/llvmpipe/lp_tex_sample.h
@@ -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);