[virglrenderer-devel] [PATCH 2/9] shader: merge array types

Dave Airlie airlied at gmail.com
Tue Jul 31 22:28:14 UTC 2018


From: Dave Airlie <airlied at redhat.com>

This just merges the sampler and image array types.
---
 src/vrend_renderer.c |  2 +-
 src/vrend_shader.c   | 12 ++++++------
 src/vrend_shader.h   | 11 +++--------
 3 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index 4397f98..fc82ee1 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -1150,7 +1150,7 @@ static void bind_image_locs(struct vrend_linked_shader_program *sprog,
    if (sprog->ss[id]->sel->sinfo.num_image_arrays) {
       int idx;
       for (i = 0; i < sprog->ss[id]->sel->sinfo.num_image_arrays; i++) {
-         struct vrend_image_array *img_array = &sprog->ss[id]->sel->sinfo.image_arrays[i];
+         struct vrend_array *img_array = &sprog->ss[id]->sel->sinfo.image_arrays[i];
          for (int j = 0; j < img_array->array_size; j++) {
             snprintf(name, 32, "%simg%d[%d]", prefix, img_array->first, j);
             sprog->img_locs[id][img_array->first + j] = glGetUniformLocation(sprog->id, name);
diff --git a/src/vrend_shader.c b/src/vrend_shader.c
index 658a830..42ebe11 100644
--- a/src/vrend_shader.c
+++ b/src/vrend_shader.c
@@ -156,10 +156,10 @@ struct dump_ctx {
    struct vrend_shader_image images[32];
    uint32_t images_used_mask;
 
-   struct vrend_image_array *image_arrays;
+   struct vrend_array *image_arrays;
    uint32_t num_image_arrays;
 
-   struct vrend_sampler_array *sampler_arrays;
+   struct vrend_array *sampler_arrays;
    uint32_t num_sampler_arrays;
 
    int num_consts;
@@ -533,7 +533,7 @@ static int add_images(struct dump_ctx *ctx, int first, int last,
 
    if (ctx->info.indirect_files & (1 << TGSI_FILE_IMAGE)) {
       if (ctx->num_image_arrays) {
-         struct vrend_image_array *last_array = &ctx->image_arrays[ctx->num_image_arrays - 1];
+         struct vrend_array *last_array = &ctx->image_arrays[ctx->num_image_arrays - 1];
          /*
           * If this set of images is consecutive to the last array,
           * and has compatible return and decls, then increase the array size.
@@ -548,7 +548,7 @@ static int add_images(struct dump_ctx *ctx, int first, int last,
 
       /* allocate a new image array for this range of images */
       ctx->num_image_arrays++;
-      ctx->image_arrays = realloc(ctx->image_arrays, sizeof(struct vrend_image_array) * ctx->num_image_arrays);
+      ctx->image_arrays = realloc(ctx->image_arrays, sizeof(struct vrend_array) * ctx->num_image_arrays);
       if (!ctx->image_arrays)
          return -1;
       ctx->image_arrays[ctx->num_image_arrays - 1].first = first;
@@ -561,7 +561,7 @@ static int add_sampler_array(struct dump_ctx *ctx, int first, int last)
 {
    int idx = ctx->num_sampler_arrays;
    ctx->num_sampler_arrays++;
-   ctx->sampler_arrays = realloc(ctx->sampler_arrays, sizeof(struct vrend_sampler_array) * ctx->num_sampler_arrays);
+   ctx->sampler_arrays = realloc(ctx->sampler_arrays, sizeof(struct vrend_array) * ctx->num_sampler_arrays);
    if (!ctx->sampler_arrays)
       return -1;
 
@@ -609,7 +609,7 @@ static int add_samplers(struct dump_ctx *ctx, int first, int last, int sview_typ
 
    if (ctx->info.indirect_files & (1 << TGSI_FILE_SAMPLER)) {
       if (ctx->num_sampler_arrays) {
-         struct vrend_sampler_array *last_array = &ctx->sampler_arrays[ctx->num_sampler_arrays - 1];
+         struct vrend_array *last_array = &ctx->sampler_arrays[ctx->num_sampler_arrays - 1];
          if ((last_array->first + last_array->array_size == first) &&
              ctx->samplers[last_array->first].tgsi_sampler_type == sview_type &&
              ctx->samplers[last_array->first].tgsi_sampler_return == sview_rtype) {
diff --git a/src/vrend_shader.h b/src/vrend_shader.h
index 54e4ec6..04e92e6 100644
--- a/src/vrend_shader.h
+++ b/src/vrend_shader.h
@@ -36,12 +36,7 @@ struct vrend_interp_info {
    unsigned location;
 };
 
-struct vrend_sampler_array {
-   int first;
-   int array_size;
-};
-
-struct vrend_image_array {
+struct vrend_array {
    int first;
    int array_size;
 };
@@ -73,10 +68,10 @@ struct vrend_shader_info {
    bool tes_point_mode;
    uint32_t attrib_input_mask;
 
-   struct vrend_sampler_array *sampler_arrays;
+   struct vrend_array *sampler_arrays;
    int num_sampler_arrays;
 
-   struct vrend_image_array *image_arrays;
+   struct vrend_array *image_arrays;
    int num_image_arrays;
 
    struct pipe_stream_output_info so_info;
-- 
2.14.3



More information about the virglrenderer-devel mailing list