í965: don't use _mesa_prim::is_indirect

the vbo change only affects i965

Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3766>
This commit is contained in:
Marek Olšák
2020-02-03 20:34:06 -05:00
committed by Marge Bot
parent a7d03103f3
commit 734654a89c
2 changed files with 8 additions and 8 deletions
+7 -7
View File
@@ -160,7 +160,8 @@ brw_emit_prim(struct brw_context *brw,
const struct _mesa_prim *prim,
uint32_t hw_prim,
struct brw_transform_feedback_object *xfb_obj,
unsigned stream)
unsigned stream,
bool is_indirect)
{
const struct gen_device_info *devinfo = &brw->screen->devinfo;
int verts_per_instance;
@@ -193,7 +194,7 @@ brw_emit_prim(struct brw_context *brw,
verts_per_instance = prim->count;
/* If nothing to emit, just return. */
if (verts_per_instance == 0 && !prim->is_indirect && !xfb_obj)
if (verts_per_instance == 0 && !is_indirect && !xfb_obj)
return;
/* If we're set to always flush, do it before and after the primitive emit.
@@ -222,7 +223,7 @@ brw_emit_prim(struct brw_context *brw,
OUT_BATCH(GEN7_3DPRIM_START_INSTANCE);
OUT_BATCH(0);
ADVANCE_BATCH();
} else if (prim->is_indirect) {
} else if (is_indirect) {
struct gl_buffer_object *indirect_buffer = brw->ctx.DrawIndirectBuffer;
struct brw_bo *bo = intel_bufferobj_buffer(brw,
intel_buffer_object(indirect_buffer),
@@ -1002,7 +1003,7 @@ brw_draw_single_prim(struct gl_context *ctx,
vs_prog_data->uses_firstvertex ||
vs_prog_data->uses_baseinstance;
if ((uses_draw_parameters && prim->is_indirect) ||
if ((uses_draw_parameters && indirect) ||
(vs_prog_data->uses_firstvertex &&
brw->draw.params.firstvertex != new_firstvertex) ||
(vs_prog_data->uses_baseinstance &&
@@ -1014,7 +1015,7 @@ brw_draw_single_prim(struct gl_context *ctx,
brw->draw.params.gl_baseinstance = new_baseinstance;
brw_bo_unreference(brw->draw.draw_params_bo);
if (prim->is_indirect) {
if (indirect) {
/* Point draw_params_bo at the indirect buffer. */
brw->draw.draw_params_bo =
intel_buffer_object(ctx->DrawIndirectBuffer)->buffer;
@@ -1065,7 +1066,7 @@ retry:
if (devinfo->gen == 9)
gen9_emit_preempt_wa(brw, prim);
brw_emit_prim(brw, prim, brw->primitive, xfb_obj, stream);
brw_emit_prim(brw, prim, brw->primitive, xfb_obj, stream, !!indirect);
brw->batch.no_wrap = false;
@@ -1219,7 +1220,6 @@ brw_draw_indirect_prims(struct gl_context *ctx,
prim[i].mode = mode;
prim[i].indexed = ib != NULL;
prim[i].indirect_offset = indirect_offset;
prim[i].is_indirect = 1;
prim[i].draw_id = i;
}
+1 -1
View File
@@ -181,7 +181,7 @@ vbo_sw_primitive_restart(struct gl_context *ctx,
void *ptr;
/* If there is an indirect buffer, map it and extract the draw params */
if (indirect && prims[0].is_indirect) {
if (indirect) {
const uint32_t *indirect_params;
if (!ctx->Driver.MapBufferRange(ctx, 0, indirect->Size, GL_MAP_READ_BIT,
indirect, MAP_INTERNAL)) {