i965/blorp: Take a blorp_context in compile_nir_shader
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 19 Aug 2016 07:49:18 +0000 (00:49 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 29 Aug 2016 19:17:34 +0000 (12:17 -0700)
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/blorp.c
src/mesa/drivers/dri/i965/blorp.h
src/mesa/drivers/dri/i965/blorp_blit.c
src/mesa/drivers/dri/i965/blorp_clear.c
src/mesa/drivers/dri/i965/blorp_priv.h
src/mesa/drivers/dri/i965/brw_blorp.c

index e655f8dd22641f00d84afb18c8720e28cc525118..e81b9ebc3666b299d4bdb130618208de784d772f 100644 (file)
@@ -170,13 +170,13 @@ nir_uniform_type_size(const struct glsl_type *type)
 }
 
 const unsigned *
-brw_blorp_compile_nir_shader(struct brw_context *brw, struct nir_shader *nir,
+brw_blorp_compile_nir_shader(struct blorp_context *blorp, struct nir_shader *nir,
                              const struct brw_wm_prog_key *wm_key,
                              bool use_repclear,
                              struct brw_blorp_prog_data *prog_data,
                              unsigned *program_size)
 {
-   const struct brw_compiler *compiler = brw->intelScreen->compiler;
+   const struct brw_compiler *compiler = blorp->compiler;
 
    void *mem_ctx = ralloc_context(NULL);
 
@@ -216,7 +216,8 @@ brw_blorp_compile_nir_shader(struct brw_context *brw, struct nir_shader *nir,
    nir_lower_io(nir, nir_var_uniform, nir_uniform_type_size);
 
    const unsigned *program =
-      brw_compile_fs(compiler, brw, mem_ctx, wm_key, &wm_prog_data, nir,
+      brw_compile_fs(compiler, blorp->driver_ctx, mem_ctx,
+                     wm_key, &wm_prog_data, nir,
                      NULL, -1, -1, false, use_repclear, program_size, NULL);
 
    /* Copy the relavent bits of wm_prog_data over into the blorp prog data */
index 45648e3f6998720ba93e4ead88736504fda07485..865ac00aac99f3f91d158ea1f4c1f2a1d9461c1b 100644 (file)
@@ -45,6 +45,8 @@ struct blorp_context {
 
    const struct isl_device *isl_dev;
 
+   const struct brw_compiler *compiler;
+
    struct {
       uint32_t tex;
       uint32_t rb;
index d8612524609e5a530bc0bfc1de6acdb90295eae3..598f9d788adb341f21dd141541ae95635d6cb3d0 100644 (file)
@@ -1214,7 +1214,7 @@ brw_blorp_get_blit_kernel(struct brw_context *brw,
    wm_key.tex.msaa_16 = prog_key->tex_samples == 16;
    wm_key.multisample_fbo = prog_key->rt_samples > 1;
 
-   program = brw_blorp_compile_nir_shader(brw, nir, &wm_key, false,
+   program = brw_blorp_compile_nir_shader(&brw->blorp, nir, &wm_key, false,
                                           &prog_data, &program_size);
 
    brw->blorp.upload_shader(&brw->blorp, prog_key, sizeof(*prog_key),
index 73b55bd09201989b4c84820af5a4539c73b60e04..8bd2b5b52d27fac34a1004930c601b69b71f988c 100644 (file)
@@ -83,7 +83,7 @@ brw_blorp_params_get_clear_kernel(struct brw_context *brw,
    struct brw_blorp_prog_data prog_data;
    unsigned program_size;
    const unsigned *program =
-      brw_blorp_compile_nir_shader(brw, b.shader, &wm_key, use_replicated_data,
+      brw_blorp_compile_nir_shader(&brw->blorp, b.shader, &wm_key, use_replicated_data,
                                    &prog_data, &program_size);
 
    brw->blorp.upload_shader(&brw->blorp, &blorp_key, sizeof(blorp_key),
index f6a82a66e7fa735a8aeef7acedd107dcad91f537..a28b5a7b73f8bdbdf30e03a5f25145c02a48a158 100644 (file)
@@ -274,7 +274,7 @@ struct brw_blorp_blit_prog_key
 void brw_blorp_init_wm_prog_key(struct brw_wm_prog_key *wm_key);
 
 const unsigned *
-brw_blorp_compile_nir_shader(struct brw_context *brw, struct nir_shader *nir,
+brw_blorp_compile_nir_shader(struct blorp_context *blorp, struct nir_shader *nir,
                              const struct brw_wm_prog_key *wm_key,
                              bool use_repclear,
                              struct brw_blorp_prog_data *prog_data,
index d2f24a65ca24ea85dd83684fe8a59d38adc50083..e509417e621a8ead62191299ce62d4b50d14142c 100644 (file)
@@ -66,6 +66,8 @@ brw_blorp_init(struct brw_context *brw)
 {
    blorp_init(&brw->blorp, brw, &brw->isl_dev);
 
+   brw->blorp.compiler = brw->intelScreen->compiler;
+
    switch (brw->gen) {
    case 6:
       brw->blorp.mocs.tex = 0;