[Mesa-dev] [PATCH 09/10] i965/fs: Do not mark used surfaces in FS_OPCODE_GET_BUFFER_SIZE

Iago Toral Quiroga itoral at igalia.com
Fri Oct 30 04:12:01 PDT 2015


Do it in the visitor, like we do for other opcodes.
---
 src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 2 --
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp       | 5 ++++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index fbc2ea4..aafac99 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -661,8 +661,6 @@ fs_generator::generate_get_buffer_size(fs_inst *inst,
               inst->header_size > 0,
               simd_mode,
               BRW_SAMPLER_RETURN_FORMAT_SINT32);
-
-   brw_mark_surface_used(prog_data, surf_index.dw1.ud);
 }
 
 void
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index 1298148..a8ddf3a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -1886,12 +1886,15 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
                                   BRW_REGISTER_TYPE_UD);
       bld.LOAD_PAYLOAD(src_payload, &source, 1, 0);
 
-      fs_reg surf_index = fs_reg(prog_data->binding_table.ssbo_start + ssbo_index);
+      unsigned index = prog_data->binding_table.ssbo_start + ssbo_index;
+      fs_reg surf_index = fs_reg(index);
       fs_inst *inst = bld.emit(FS_OPCODE_GET_BUFFER_SIZE, dest,
                                src_payload, surf_index);
       inst->header_size = 0;
       inst->mlen = mlen;
       bld.emit(inst);
+
+      brw_mark_surface_used(prog_data, index);
       break;
    }
 
-- 
1.9.1



More information about the mesa-dev mailing list