OSDN Git Service

i965/fs: Let the gen < 8 generator know about runtime_check_aads_emit
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 5 Jun 2014 13:03:06 +0000 (15:03 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Mon, 9 Jun 2014 09:47:38 +0000 (11:47 +0200)
In gen < 6 we need to produce conditional code based on this flag when doing
framebuffer writes.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_blorp_blit_eu.cpp
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_generator.cpp

index 33fa606..a2e008b 100644 (file)
@@ -31,7 +31,7 @@ brw_blorp_eu_emitter::brw_blorp_eu_emitter(struct brw_context *brw,
      generator(brw, mem_ctx,
                rzalloc(mem_ctx, struct brw_wm_prog_key),
                rzalloc(mem_ctx, struct brw_wm_prog_data),
-               NULL, NULL, false, debug_flag)
+               NULL, NULL, false, false, debug_flag)
 {
 }
 
index 3fa8334..a8ca9bc 100644 (file)
@@ -3211,7 +3211,7 @@ brw_wm_fs_emit(struct brw_context *brw,
                                      final_assembly_size);
    } else {
       fs_generator g(brw, mem_ctx, key, prog_data, prog, fp, v.do_dual_src,
-                     INTEL_DEBUG & DEBUG_WM);
+                     v.runtime_check_aads_emit, INTEL_DEBUG & DEBUG_WM);
       assembly = g.generate_assembly(&v.instructions, simd16_instructions,
                                      final_assembly_size);
    }
index d91b966..02311a6 100644 (file)
@@ -607,6 +607,7 @@ public:
                 struct gl_shader_program *prog,
                 struct gl_fragment_program *fp,
                 bool dual_source_output,
+                bool runtime_check_aads_emit,
                 bool debug_flag);
    ~fs_generator();
 
@@ -716,6 +717,7 @@ private:
 
    exec_list discard_halt_patches;
    bool dual_source_output;
+   bool runtime_check_aads_emit;
    const bool debug_flag;
    void *mem_ctx;
 };
index 3ff7682..f4e4826 100644 (file)
@@ -43,10 +43,12 @@ fs_generator::fs_generator(struct brw_context *brw,
                            struct gl_shader_program *prog,
                            struct gl_fragment_program *fp,
                            bool dual_source_output,
+                           bool runtime_check_aads_emit,
                            bool debug_flag)
 
    : brw(brw), key(key), prog_data(prog_data), prog(prog), fp(fp),
-     dual_source_output(dual_source_output), debug_flag(debug_flag),
+     dual_source_output(dual_source_output),
+     runtime_check_aads_emit(runtime_check_aads_emit), debug_flag(debug_flag),
      mem_ctx(mem_ctx)
 {
    ctx = &brw->ctx;