i965/gen7: Call gen7_create_constant_surface instead of brw_[...].
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 7 Jun 2011 00:19:12 +0000 (17:19 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 8 Jun 2011 21:51:11 +0000 (14:51 -0700)
Fixes 17 piglit tests:
- glsl-vs-arrays-3
- glsl-vs-texturematrix-2
- glsl-vs-uniform-array-2
- arl
- nv-arl
- nv-init-zero-addr
- vp-address-01
- vp-arl-constant-array
- vp-arl-constant-array-huge
- vp-arl-constant-array-huge-offset
- vp-arl-constant-array-huge-offset-neg
- vp-arl-constant-array-huge-relative-offset
- vp-arl-constant-array-huge-varying
- vp-arl-env-array
- vp-arl-local-array
- vp-arl-neg-array
- vp-arl-neg-array-2

Fixes 4 glean tests:
- glsl1-constant array of vec4 with variable indexing, vertex shader
- glsl1-constant array with variable indexing, vertex shader
- glsl1-constant array with variable indexing, vertex shader (2)
- vp1-ARL test

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_state.h
src/mesa/drivers/dri/i965/brw_vs_surface_state.c
src/mesa/drivers/dri/i965/gen7_wm_surface_state.c

index 3aaa7c6d794604c27dcae61c1c5e591efa9fac65..544ef7d47e6b37a3b7a4496a9353f0a6b1d27606 100644 (file)
@@ -191,6 +191,12 @@ GLuint translate_tex_format(gl_format mesa_format,
                            GLenum depth_mode,
                            GLenum srgb_decode);
 
+/* gen7_wm_surface_state.c */
+void gen7_create_constant_surface(struct brw_context *brw,
+                                 drm_intel_bo *bo,
+                                 int width,
+                                 uint32_t *out_offset);
+
 /* brw_wm_sampler_state.c */
 uint32_t translate_wrap_mode(GLenum wrap, bool using_nearest);
 void upload_default_color(struct brw_context *brw,
index 2b9b63590a0de294b872ba4771c8c031a25d91e1..611f6333689e5881dbb5c51bb2260b524ac1218b 100644 (file)
@@ -114,6 +114,7 @@ brw_update_vs_constant_surface( struct gl_context *ctx,
                                 GLuint surf)
 {
    struct brw_context *brw = brw_context(ctx);
+   struct intel_context *intel = &brw->intel;
    struct brw_vertex_program *vp =
       (struct brw_vertex_program *) brw->vertex_program;
    const struct gl_program_parameter_list *params = vp->program.Base.Parameters;
@@ -128,8 +129,13 @@ brw_update_vs_constant_surface( struct gl_context *ctx,
       return;
    }
 
-   brw_create_constant_surface(brw, brw->vs.const_bo, params->NumParameters,
-                              &brw->vs.surf_offset[surf]);
+   if (intel->gen >= 7) {
+      gen7_create_constant_surface(brw, brw->vs.const_bo, params->NumParameters,
+                                 &brw->vs.surf_offset[surf]);
+   } else {
+      brw_create_constant_surface(brw, brw->vs.const_bo, params->NumParameters,
+                                 &brw->vs.surf_offset[surf]);
+   }
 }
 
 
index d4eb550c75863e18bf9351749a747a5d1bc9671c..00b562f2176051a44d0bafbe9e726c84df429da4 100644 (file)
@@ -126,7 +126,7 @@ gen7_update_texture_surface(struct gl_context *ctx, GLuint unit)
  * Create the constant buffer surface.  Vertex/fragment shader constants will
  * be read from this buffer with Data Port Read instructions/messages.
  */
-static void
+void
 gen7_create_constant_surface(struct brw_context *brw,
                             drm_intel_bo *bo,
                             int width,