iris: do the FS...asserts because we don't lower uniforms yet
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 21 Jan 2018 00:56:59 +0000 (16:56 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:05 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_program.c

index e5c7791dcd7d945040083abf871f05585f4c842c..109e5b95e7e7a46c8213f1a1cdd14df677454f2f 100644 (file)
@@ -90,7 +90,7 @@ struct iris_context {
    struct {
       struct iris_uncompiled_shader *progs[MESA_SHADER_STAGES];
       struct brw_stage_prog_data *prog_data[MESA_SHADER_STAGES];
-      uint32_t *prog_offset[MESA_SHADER_STAGES];
+      uint32_t prog_offset[MESA_SHADER_STAGES];
       struct brw_vue_map *last_vue_map;
 
       struct iris_program_cache cache;
index eed24334486d8b9f800e816272c7efdd148f1c3e..064b2b2a8ba6ce4419426f5256ef4eec331374f5 100644 (file)
@@ -346,7 +346,10 @@ iris_update_compiled_fs(struct iris_context *ice)
    struct brw_wm_prog_key key;
    iris_populate_fs_key(ice, &key);
 
-   return; // XXX: need to fix FS compiles
+   if (iris_search_cache(ice, IRIS_CACHE_FS, &key, sizeof(key), IRIS_DIRTY_FS,
+                         &ice->shaders.prog_offset[MESA_SHADER_FRAGMENT],
+                         &ice->shaders.prog_data[MESA_SHADER_FRAGMENT]))
+      return;
 
    UNUSED bool success =
       iris_compile_fs(ice, ice->shaders.progs[MESA_SHADER_FRAGMENT], &key,
@@ -356,18 +359,17 @@ iris_update_compiled_fs(struct iris_context *ice)
 static void
 update_last_vue_map(struct iris_context *ice)
 {
-#if 0
-   struct brw_vue_prog_data *vue_prog_data;
+   struct brw_stage_prog_data *prog_data;
 
    if (ice->shaders.progs[MESA_SHADER_GEOMETRY])
-      vue_prog_data = brw_vue_prog_data(brw->gs.base.prog_data);
+      prog_data = ice->shaders.prog_data[MESA_SHADER_GEOMETRY];
    else if (ice->shaders.progs[MESA_SHADER_TESS_EVAL])
-      vue_prog_data = brw_vue_prog_data(brw->tes.base.prog_data);
+      prog_data = ice->shaders.prog_data[MESA_SHADER_TESS_EVAL];
    else
-      vue_prog_data = brw_vue_prog_data(brw->vs.base.prog_data);
+      prog_data = ice->shaders.prog_data[MESA_SHADER_VERTEX];
 
-   brw->vue_map_geom_out = vue_prog_data->vue_map;
-#endif
+   struct brw_vue_prog_data *vue_prog_data = (void *) prog_data;
+   ice->shaders.last_vue_map = &vue_prog_data->vue_map;
 }
 
 void