tgsi: remove some not so useful variables from tgsi_shader_info
authorMarek Olšák <marek.olsak@amd.com>
Tue, 30 Sep 2014 13:59:37 +0000 (15:59 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Sat, 4 Oct 2014 13:16:14 +0000 (15:16 +0200)
src/gallium/auxiliary/tgsi/tgsi_scan.c
src/gallium/auxiliary/tgsi/tgsi_scan.h
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/softpipe/sp_quad_blend.c
src/gallium/drivers/softpipe/sp_setup.c
src/gallium/drivers/svga/svga_state_fs.c

index f9d189602ca010849f1cb40521f58d4f55f25d30..d68dca817137b2ec19cdb80cb620abec78f3ecd5 100644 (file)
@@ -293,14 +293,6 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
    info->uses_kill = (info->opcode_count[TGSI_OPCODE_KILL_IF] ||
                       info->opcode_count[TGSI_OPCODE_KILL]);
 
-   /* extract simple properties */
-   info->origin_lower_left =
-         info->properties[TGSI_PROPERTY_FS_COORD_ORIGIN][0];
-   info->pixel_center_integer =
-         info->properties[TGSI_PROPERTY_FS_COORD_PIXEL_CENTER][0];
-   info->color0_writes_all_cbufs =
-         info->properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS][0];
-
    /* The dimensions of the IN decleration in geometry shader have
     * to be deduced from the type of the input primitive.
     */
index 0d79e292209596dc9f9882d69d2c59527c150398..934aceca4c6dd0441bc13d006f666f67e591df1a 100644 (file)
@@ -76,9 +76,6 @@ struct tgsi_shader_info
    boolean uses_vertexid;
    boolean uses_primid;
    boolean uses_frontface;
-   boolean origin_lower_left;
-   boolean pixel_center_integer;
-   boolean color0_writes_all_cbufs;
    boolean writes_viewport_index;
    boolean writes_layer;
    boolean is_msaa_sampler[PIPE_MAX_SAMPLERS];
index 431f31efaf70b3d4a927dd4283088876b597f9a7..c344fc07b0c4f3f3882a2a807d6c432b7311c62b 100644 (file)
@@ -2323,6 +2323,8 @@ generate_fragment(struct llvmpipe_context *lp,
       LLVMValueRef mask_store = lp_build_array_alloca(gallivm, mask_type,
                                                       num_loop, "mask_store");
       LLVMValueRef color_store[PIPE_MAX_COLOR_BUFS][TGSI_NUM_CHANNELS];
+      boolean pixel_center_integer =
+         shader->info.base.properties[TGSI_PROPERTY_FS_COORD_PIXEL_CENTER][0];
 
       /*
        * The shader input interpolation info is not explicitely baked in the
@@ -2333,7 +2335,7 @@ generate_fragment(struct llvmpipe_context *lp,
                                gallivm,
                                shader->info.base.num_inputs,
                                inputs,
-                               shader->info.base.pixel_center_integer,
+                               pixel_center_integer,
                                builder, fs_type,
                                a0_ptr, dadx_ptr, dady_ptr,
                                x, y);
index 6c52c9071af7f961e67f3b9939cbdf45092d27b5..d60e5087ac0a4415cd849847e6d952ff63de6cb5 100644 (file)
@@ -923,9 +923,8 @@ blend_fallback(struct quad_stage *qs,
    struct softpipe_context *softpipe = qs->softpipe;
    const struct pipe_blend_state *blend = softpipe->blend;
    unsigned cbuf;
-   boolean write_all;
-
-   write_all = softpipe->fs_variant->info.color0_writes_all_cbufs;
+   boolean write_all =
+      softpipe->fs_variant->info.properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS][0];
 
    for (cbuf = 0; cbuf < softpipe->framebuffer.nr_cbufs; cbuf++) {
       if (softpipe->framebuffer.cbufs[cbuf]) {
index 7937e10ad8ac3fa33c0f1e6537ade1dd85e01470..989ed9c601b4fa97485f0c4e8f7639c20a9ec2b9 100644 (file)
@@ -562,17 +562,21 @@ static void
 setup_fragcoord_coeff(struct setup_context *setup, uint slot)
 {
    const struct tgsi_shader_info *fsInfo = &setup->softpipe->fs_variant->info;
+   boolean origin_lower_left =
+         fsInfo->properties[TGSI_PROPERTY_FS_COORD_ORIGIN][0];
+   boolean pixel_center_integer =
+         fsInfo->properties[TGSI_PROPERTY_FS_COORD_PIXEL_CENTER][0];
 
    /*X*/
-   setup->coef[slot].a0[0] = fsInfo->pixel_center_integer ? 0.0f : 0.5f;
+   setup->coef[slot].a0[0] = pixel_center_integer ? 0.0f : 0.5f;
    setup->coef[slot].dadx[0] = 1.0f;
    setup->coef[slot].dady[0] = 0.0f;
    /*Y*/
    setup->coef[slot].a0[1] =
-                  (fsInfo->origin_lower_left ? setup->softpipe->framebuffer.height-1 : 0)
-                  + (fsInfo->pixel_center_integer ? 0.0f : 0.5f);
+                  (origin_lower_left ? setup->softpipe->framebuffer.height-1 : 0)
+                  + (pixel_center_integer ? 0.0f : 0.5f);
    setup->coef[slot].dadx[1] = 0.0f;
-   setup->coef[slot].dady[1] = fsInfo->origin_lower_left ? -1.0f : 1.0f;
+   setup->coef[slot].dady[1] = origin_lower_left ? -1.0f : 1.0f;
    /*Z*/
    setup->coef[slot].a0[2] = setup->posCoef.a0[2];
    setup->coef[slot].dadx[2] = setup->posCoef.dadx[2];
index e714c078405b59a5a58b02fe603fa18c9c33b634..1e83d2e2da925a11dcd039b463e7b7e5a5ce9d8d 100644 (file)
@@ -338,7 +338,7 @@ make_fs_key(const struct svga_context *svga,
                                     == PIPE_SPRITE_COORD_LOWER_LEFT);
 
    /* SVGA_NEW_FRAME_BUFFER */
-   if (fs->base.info.color0_writes_all_cbufs) {
+   if (fs->base.info.properties[TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS][0]) {
       /* Replicate color0 output to N colorbuffers */
       key->write_color0_to_n_cbufs = svga->curr.framebuffer.nr_cbufs;
    }