i965: Delete gen7_upload_sampler_state_table and vtable mechanism.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 26 Jul 2014 18:48:50 +0000 (11:48 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Sat, 2 Aug 2014 12:14:42 +0000 (05:14 -0700)
brw_upload_sampler_state_table now handles all generations, so we don't
need the vtable mechanism either.

There's still a lot of code duplication; the next patches will address
that.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/brw_context.c
src/mesa/drivers/dri/i965/brw_context.h
src/mesa/drivers/dri/i965/brw_sampler_state.c
src/mesa/drivers/dri/i965/brw_state.h
src/mesa/drivers/dri/i965/gen7_sampler_state.c

index c47ad36c5b6a21d320b7a0c6a4799f45be57819a..89f5df5b5c6b7543ee54487b58dff55c92376bc0 100644 (file)
@@ -639,15 +639,12 @@ brwCreateContext(gl_api api,
    brw->wm.base.stage = MESA_SHADER_FRAGMENT;
    if (brw->gen >= 8) {
       gen8_init_vtable_surface_functions(brw);
-      gen7_init_vtable_sampler_functions(brw);
       brw->vtbl.emit_depth_stencil_hiz = gen8_emit_depth_stencil_hiz;
    } else if (brw->gen >= 7) {
       gen7_init_vtable_surface_functions(brw);
-      gen7_init_vtable_sampler_functions(brw);
       brw->vtbl.emit_depth_stencil_hiz = gen7_emit_depth_stencil_hiz;
    } else {
       gen4_init_vtable_surface_functions(brw);
-      gen4_init_vtable_sampler_functions(brw);
       brw->vtbl.emit_depth_stencil_hiz = brw_emit_depth_stencil_hiz;
    }
 
index f730cffe463247445d62d3b49519b88b367490d8..1bbcf46975733d6901ceda7ac59ef115d22ab92a 100644 (file)
@@ -929,11 +929,6 @@ struct brw_context
                                         unsigned mocs,
                                         bool rw);
 
-      /** Upload a SAMPLER_STATE table. */
-      void (*upload_sampler_state_table)(struct brw_context *brw,
-                                         struct gl_program *prog,
-                                         struct brw_stage_state *stage_state);
-
       /**
        * Send the appropriate state packets to configure depth, stencil, and
        * HiZ buffers (i965+ only)
index 7ccf14640f8a8b3928559a7272aed84eff54b159..a4091a1ec2110e6153abb3361d2678e18ec3991e 100644 (file)
@@ -461,7 +461,7 @@ brw_upload_fs_samplers(struct brw_context *brw)
 {
    /* BRW_NEW_FRAGMENT_PROGRAM */
    struct gl_program *fs = (struct gl_program *) brw->fragment_program;
-   brw->vtbl.upload_sampler_state_table(brw, fs, &brw->wm.base);
+   brw_upload_sampler_state_table(brw, fs, &brw->wm.base);
 }
 
 const struct brw_tracked_state brw_fs_samplers = {
@@ -479,7 +479,7 @@ brw_upload_vs_samplers(struct brw_context *brw)
 {
    /* BRW_NEW_VERTEX_PROGRAM */
    struct gl_program *vs = (struct gl_program *) brw->vertex_program;
-   brw->vtbl.upload_sampler_state_table(brw, vs, &brw->vs.base);
+   brw_upload_sampler_state_table(brw, vs, &brw->vs.base);
 }
 
 
@@ -502,7 +502,7 @@ brw_upload_gs_samplers(struct brw_context *brw)
    if (!gs)
       return;
 
-   brw->vtbl.upload_sampler_state_table(brw, gs, &brw->gs.base);
+   brw_upload_sampler_state_table(brw, gs, &brw->gs.base);
 }
 
 
@@ -515,10 +515,3 @@ const struct brw_tracked_state brw_gs_samplers = {
    },
    .emit = brw_upload_gs_samplers,
 };
-
-
-void
-gen4_init_vtable_sampler_functions(struct brw_context *brw)
-{
-   brw->vtbl.upload_sampler_state_table = brw_upload_sampler_state_table;
-}
index 64652cbbeb6e9310bd812c6ac14a07c4ad9326f7..0fda360e3c119b706970725346e835c84ef30eae 100644 (file)
@@ -249,13 +249,11 @@ void upload_default_color(struct brw_context *brw,
                          struct gl_sampler_object *sampler,
                          int unit,
                           uint32_t *sdc_offset);
-void gen4_init_vtable_sampler_functions(struct brw_context *brw);
 
 /* gen7_sampler_state.c */
 void gen7_update_sampler_state(struct brw_context *brw,
                                int unit,
                                struct gen7_sampler_state *sampler_state);
-void gen7_init_vtable_sampler_functions(struct brw_context *brw);
 
 /* gen6_sf_state.c */
 void
index 66af26a63e44999dde6f847de9418a46812d09e3..276c2b991da5960e6bea77d1806ba056c2b5de8a 100644 (file)
@@ -177,53 +177,3 @@ gen7_update_sampler_state(struct brw_context *brw, int unit,
                                     BRW_ADDRESS_ROUNDING_ENABLE_V_MAG |
                                     BRW_ADDRESS_ROUNDING_ENABLE_R_MAG;
 }
-
-
-static void
-gen7_upload_sampler_state_table(struct brw_context *brw,
-                                struct gl_program *prog,
-                                struct brw_stage_state *stage_state)
-{
-   struct gl_context *ctx = &brw->ctx;
-   struct gen7_sampler_state *samplers;
-   uint32_t sampler_count = stage_state->sampler_count;
-   static const uint16_t packet_headers[] = {
-      [MESA_SHADER_VERTEX] = _3DSTATE_SAMPLER_STATE_POINTERS_VS,
-      [MESA_SHADER_GEOMETRY] = _3DSTATE_SAMPLER_STATE_POINTERS_GS,
-      [MESA_SHADER_FRAGMENT] = _3DSTATE_SAMPLER_STATE_POINTERS_PS,
-   };
-
-   GLbitfield SamplersUsed = prog->SamplersUsed;
-
-   if (sampler_count == 0)
-      return;
-
-   samplers = brw_state_batch(brw, AUB_TRACE_SAMPLER_STATE,
-                             sampler_count * sizeof(*samplers),
-                             32, &stage_state->sampler_offset);
-   memset(samplers, 0, sampler_count * sizeof(*samplers));
-
-   for (unsigned s = 0; s < sampler_count; s++) {
-      if (SamplersUsed & (1 << s)) {
-         const unsigned unit = prog->SamplerUnits[s];
-         if (ctx->Texture.Unit[unit]._Current)
-            gen7_update_sampler_state(brw, unit, &samplers[s]);
-      }
-   }
-
-  if (brw->gen == 7 && !brw->is_haswell && !brw->is_baytrail &&
-      stage_state->stage == MESA_SHADER_VERTEX) {
-      gen7_emit_vs_workaround_flush(brw);
-  }
-
-   BEGIN_BATCH(2);
-   OUT_BATCH(packet_headers[stage_state->stage] << 16 | (2 - 2));
-   OUT_BATCH(stage_state->sampler_offset);
-   ADVANCE_BATCH();
-}
-
-void
-gen7_init_vtable_sampler_functions(struct brw_context *brw)
-{
-   brw->vtbl.upload_sampler_state_table = gen7_upload_sampler_state_table;
-}