llvmpipe: pass number of images into image soa create
authorDave Airlie <airlied@redhat.com>
Tue, 16 Jun 2020 02:45:26 +0000 (12:45 +1000)
committerMarge Bot <eric+marge@anholt.net>
Thu, 2 Jul 2020 04:12:17 +0000 (04:12 +0000)
Just store this for now to use later with indexing

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

src/gallium/drivers/llvmpipe/lp_state_cs.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_tex_sample.c
src/gallium/drivers/llvmpipe/lp_tex_sample.h

index a3daf6a503bd620ad22b2d18f1073e66be469d08..7bd52bb78b02ec0c71c80135c1339b11790a5d3b 100644 (file)
@@ -175,7 +175,7 @@ generate_compute(struct llvmpipe_context *lp,
    assert(builder);
    LLVMPositionBuilderAtEnd(builder, block);
    sampler = lp_llvm_sampler_soa_create(key->samplers, key->nr_samplers);
-   image = lp_llvm_image_soa_create(lp_cs_variant_key_images(key));
+   image = lp_llvm_image_soa_create(lp_cs_variant_key_images(key), key->nr_images);
 
    struct lp_build_loop_state loop_state[4];
    LLVMValueRef num_x_loop;
index 1d57f2553d24c49df93f9ac2947fece784828e5e..9967b4a94ece45f56d24681670c67807764d9fef 100644 (file)
@@ -2917,7 +2917,7 @@ generate_fragment(struct llvmpipe_context *lp,
 
    /* code generated texture sampling */
    sampler = lp_llvm_sampler_soa_create(key->samplers, key->nr_samplers);
-   image = lp_llvm_image_soa_create(lp_fs_variant_key_images(key));
+   image = lp_llvm_image_soa_create(lp_fs_variant_key_images(key), key->nr_images);
 
    num_fs = 16 / fs_type.length; /* number of loops per 4x4 stamp */
    /* for 1d resources only run "upper half" of stamp */
index ea44970d0b76ff36aba2b5f9b83b793945955043..1f29be56bf1deb6d7a579c11ebc13fb0af189e8f 100644 (file)
@@ -94,6 +94,7 @@ struct lp_llvm_image_soa
    struct lp_build_image_soa base;
 
    struct llvmpipe_image_dynamic_state dynamic_state;
+   unsigned nr_images;
 };
 
 
@@ -495,7 +496,8 @@ lp_llvm_image_soa_emit_size_query(const struct lp_build_image_soa *base,
 }
 
 struct lp_build_image_soa *
-lp_llvm_image_soa_create(const struct lp_image_static_state *static_state)
+lp_llvm_image_soa_create(const struct lp_image_static_state *static_state,
+                         unsigned nr_images)
 {
    struct lp_llvm_image_soa *image;
 
@@ -519,5 +521,6 @@ lp_llvm_image_soa_create(const struct lp_image_static_state *static_state)
 
    image->dynamic_state.static_state = static_state;
 
+   image->nr_images = nr_images;
    return &image->base;
 }
index 5deff6314996310ac38768b4b90f9d9162589e80..51813ea5c95784ace0725d420f1e9c3c2fe3d2eb 100644 (file)
@@ -49,6 +49,7 @@ 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);
+lp_llvm_image_soa_create(const struct lp_image_static_state *key,
+                         unsigned nr_images);
 
 #endif /* LP_TEX_SAMPLE_H */