mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
i965/blorp: Use core vertex buffer state setup
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
4f7e68799f
commit
f2c472fcb3
1 changed files with 14 additions and 48 deletions
|
|
@ -30,52 +30,8 @@
|
||||||
#include "brw_state.h"
|
#include "brw_state.h"
|
||||||
|
|
||||||
#include "brw_blorp.h"
|
#include "brw_blorp.h"
|
||||||
|
#include "vbo/vbo.h"
|
||||||
static void
|
#include "brw_draw.h"
|
||||||
gen6_blorp_emit_vertex_buffer_state(struct brw_context *brw,
|
|
||||||
unsigned num_elems,
|
|
||||||
unsigned vbo_size,
|
|
||||||
uint32_t vertex_offset)
|
|
||||||
{
|
|
||||||
/* 3DSTATE_VERTEX_BUFFERS */
|
|
||||||
const int num_buffers = 1;
|
|
||||||
const int batch_length = 1 + 4 * num_buffers;
|
|
||||||
|
|
||||||
uint32_t dw0 = GEN6_VB0_ACCESS_VERTEXDATA |
|
|
||||||
(num_elems * sizeof(float)) << BRW_VB0_PITCH_SHIFT;
|
|
||||||
|
|
||||||
if (brw->gen >= 7)
|
|
||||||
dw0 |= GEN7_VB0_ADDRESS_MODIFYENABLE;
|
|
||||||
|
|
||||||
switch (brw->gen) {
|
|
||||||
case 7:
|
|
||||||
dw0 |= GEN7_MOCS_L3 << 16;
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
dw0 |= BDW_MOCS_WB << 16;
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
dw0 |= SKL_MOCS_WB << 16;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
BEGIN_BATCH(batch_length);
|
|
||||||
OUT_BATCH((_3DSTATE_VERTEX_BUFFERS << 16) | (batch_length - 2));
|
|
||||||
OUT_BATCH(dw0);
|
|
||||||
if (brw->gen >= 8) {
|
|
||||||
OUT_RELOC64(brw->batch.bo, I915_GEM_DOMAIN_VERTEX, 0, vertex_offset);
|
|
||||||
OUT_BATCH(vbo_size);
|
|
||||||
} else {
|
|
||||||
/* start address */
|
|
||||||
OUT_RELOC(brw->batch.bo, I915_GEM_DOMAIN_VERTEX, 0,
|
|
||||||
vertex_offset);
|
|
||||||
/* end address */
|
|
||||||
OUT_RELOC(brw->batch.bo, I915_GEM_DOMAIN_VERTEX, 0,
|
|
||||||
vertex_offset + vbo_size - 1);
|
|
||||||
OUT_BATCH(0);
|
|
||||||
}
|
|
||||||
ADVANCE_BATCH();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gen6_blorp_emit_vertex_data(struct brw_context *brw,
|
gen6_blorp_emit_vertex_data(struct brw_context *brw,
|
||||||
|
|
@ -131,9 +87,19 @@ gen6_blorp_emit_vertex_data(struct brw_context *brw,
|
||||||
&vertex_offset);
|
&vertex_offset);
|
||||||
memcpy(vertex_data, vertices, sizeof(vertices));
|
memcpy(vertex_data, vertices, sizeof(vertices));
|
||||||
|
|
||||||
|
/* 3DSTATE_VERTEX_BUFFERS */
|
||||||
|
const int num_buffers = 1;
|
||||||
|
const int batch_length = 1 + 4 * num_buffers;
|
||||||
|
|
||||||
|
BEGIN_BATCH(batch_length);
|
||||||
|
OUT_BATCH((_3DSTATE_VERTEX_BUFFERS << 16) | (batch_length - 2));
|
||||||
|
|
||||||
const unsigned blorp_num_vue_elems = 2;
|
const unsigned blorp_num_vue_elems = 2;
|
||||||
gen6_blorp_emit_vertex_buffer_state(brw, blorp_num_vue_elems,
|
const unsigned stride = blorp_num_vue_elems * sizeof(float);
|
||||||
sizeof(vertices), vertex_offset);
|
EMIT_VERTEX_BUFFER_STATE(brw, 0 /* buffer_nr */, brw->batch.bo,
|
||||||
|
vertex_offset, vertex_offset + sizeof(vertices),
|
||||||
|
stride, 0 /* steprate */);
|
||||||
|
ADVANCE_BATCH();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue