Re: [Mesa-dev] [PATCH 3/7] i965: Stop passing read/write domains to load_reg_mem32/64
Some I915_GEM_DOMAIN_VERTEX are changed to I915_GEM_DOMAIN_INSTRUCTION, which are treated the same way in the kernel. So I guess it doesn't matter. Reviewed-by: Lionel LandwerlinOn 09/12/16 10:54, Chris Wilson wrote: The domains used are immaterial, and we should never be marking the read from the buffer as a write, so stop passing them around from the caller and choose the appropriate read domain when writing. Signed-off-by: Chris Wilson --- src/mesa/drivers/dri/i965/brw_compute.c| 27 +-- src/mesa/drivers/dri/i965/brw_conditional_render.c | 14 ++-- src/mesa/drivers/dri/i965/brw_context.h| 10 +++--- src/mesa/drivers/dri/i965/brw_draw.c | 38 +- src/mesa/drivers/dri/i965/hsw_queryobj.c | 29 - src/mesa/drivers/dri/i965/hsw_sol.c| 14 +++- src/mesa/drivers/dri/i965/intel_batchbuffer.c | 19 +-- 7 files changed, 48 insertions(+), 103 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_compute.c b/src/mesa/drivers/dri/i965/brw_compute.c index 16b5df7ca4..51cd45df7a 100644 --- a/src/mesa/drivers/dri/i965/brw_compute.c +++ b/src/mesa/drivers/dri/i965/brw_compute.c @@ -40,15 +40,12 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) GLintptr indirect_offset = brw->compute.num_work_groups_offset; drm_intel_bo *bo = brw->compute.num_work_groups_bo; - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMX, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 0); - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMY, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 4); - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMZ, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 8); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMX, bo, indirect_offset + 0); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMY, bo, indirect_offset + 4); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMZ, bo, indirect_offset + 8); if (brw->gen > 7) return; @@ -65,9 +62,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_x_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 0); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 0); /* predicate = (compute_dispatch_indirect_x_size == 0); */ BEGIN_BATCH(1); @@ -78,9 +73,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_y_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 4); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 4); /* predicate |= (compute_dispatch_indirect_y_size == 0); */ BEGIN_BATCH(1); @@ -91,9 +84,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_z_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 8); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 8); /* predicate |= (compute_dispatch_indirect_z_size == 0); */ BEGIN_BATCH(1); diff --git a/src/mesa/drivers/dri/i965/brw_conditional_render.c b/src/mesa/drivers/dri/i965/brw_conditional_render.c index 122a4ecc0f..8574fc1aeb 100644 --- a/src/mesa/drivers/dri/i965/brw_conditional_render.c +++ b/src/mesa/drivers/dri/i965/brw_conditional_render.c @@ -62,18 +62,8 @@ set_predicate_for_result(struct brw_context *brw, */ brw_emit_pipe_control_flush(brw, PIPE_CONTROL_FLUSH_ENABLE); - brw_load_register_mem64(brw, - MI_PREDICATE_SRC0, - query->bo, - I915_GEM_DOMAIN_INSTRUCTION, - 0, /* write domain */ - 0 /* offset */); - brw_load_register_mem64(brw, - MI_PREDICATE_SRC1, - query->bo, - I915_GEM_DOMAIN_INSTRUCTION, - 0, /* write domain */ - 8 /* offset */); + brw_load_register_mem64(brw, MI_PREDICATE_SRC0, query->bo, 0 /* offset */); + brw_load_register_mem64(brw, MI_PREDICATE_SRC1, query->bo, 8 /* offset */); if (inverted) load_op =
[Mesa-dev] [PATCH 3/7] i965: Stop passing read/write domains to load_reg_mem32/64
The domains used are immaterial, and we should never be marking the read from the buffer as a write, so stop passing them around from the caller and choose the appropriate read domain when writing. Signed-off-by: Chris Wilson--- src/mesa/drivers/dri/i965/brw_compute.c| 27 +-- src/mesa/drivers/dri/i965/brw_conditional_render.c | 14 ++-- src/mesa/drivers/dri/i965/brw_context.h| 10 +++--- src/mesa/drivers/dri/i965/brw_draw.c | 38 +- src/mesa/drivers/dri/i965/hsw_queryobj.c | 29 - src/mesa/drivers/dri/i965/hsw_sol.c| 14 +++- src/mesa/drivers/dri/i965/intel_batchbuffer.c | 19 +-- 7 files changed, 48 insertions(+), 103 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_compute.c b/src/mesa/drivers/dri/i965/brw_compute.c index 16b5df7ca4..51cd45df7a 100644 --- a/src/mesa/drivers/dri/i965/brw_compute.c +++ b/src/mesa/drivers/dri/i965/brw_compute.c @@ -40,15 +40,12 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) GLintptr indirect_offset = brw->compute.num_work_groups_offset; drm_intel_bo *bo = brw->compute.num_work_groups_bo; - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMX, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 0); - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMY, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 4); - brw_load_register_mem(brw, GEN7_GPGPU_DISPATCHDIMZ, bo, - I915_GEM_DOMAIN_VERTEX, 0, - indirect_offset + 8); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMX, bo, indirect_offset + 0); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMY, bo, indirect_offset + 4); + brw_load_register_mem32(brw, + GEN7_GPGPU_DISPATCHDIMZ, bo, indirect_offset + 8); if (brw->gen > 7) return; @@ -65,9 +62,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_x_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 0); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 0); /* predicate = (compute_dispatch_indirect_x_size == 0); */ BEGIN_BATCH(1); @@ -78,9 +73,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_y_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 4); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 4); /* predicate |= (compute_dispatch_indirect_y_size == 0); */ BEGIN_BATCH(1); @@ -91,9 +84,7 @@ prepare_indirect_gpgpu_walker(struct brw_context *brw) ADVANCE_BATCH(); /* Load compute_dispatch_indirect_z_size into SRC0 */ - brw_load_register_mem(brw, MI_PREDICATE_SRC0, bo, - I915_GEM_DOMAIN_INSTRUCTION, 0, - indirect_offset + 8); + brw_load_register_mem32(brw, MI_PREDICATE_SRC0, bo, indirect_offset + 8); /* predicate |= (compute_dispatch_indirect_z_size == 0); */ BEGIN_BATCH(1); diff --git a/src/mesa/drivers/dri/i965/brw_conditional_render.c b/src/mesa/drivers/dri/i965/brw_conditional_render.c index 122a4ecc0f..8574fc1aeb 100644 --- a/src/mesa/drivers/dri/i965/brw_conditional_render.c +++ b/src/mesa/drivers/dri/i965/brw_conditional_render.c @@ -62,18 +62,8 @@ set_predicate_for_result(struct brw_context *brw, */ brw_emit_pipe_control_flush(brw, PIPE_CONTROL_FLUSH_ENABLE); - brw_load_register_mem64(brw, - MI_PREDICATE_SRC0, - query->bo, - I915_GEM_DOMAIN_INSTRUCTION, - 0, /* write domain */ - 0 /* offset */); - brw_load_register_mem64(brw, - MI_PREDICATE_SRC1, - query->bo, - I915_GEM_DOMAIN_INSTRUCTION, - 0, /* write domain */ - 8 /* offset */); + brw_load_register_mem64(brw, MI_PREDICATE_SRC0, query->bo, 0 /* offset */); + brw_load_register_mem64(brw, MI_PREDICATE_SRC1, query->bo, 8 /* offset */); if (inverted) load_op = MI_PREDICATE_LOADOP_LOAD; diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 550eefedcc..77a5f8b879 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -1363,15 +1363,13 @@ void brw_init_conditional_render_functions(struct