}
}
-unsigned
-brw_get_index_type(GLenum type)
-{
- switch (type) {
- case GL_UNSIGNED_BYTE: return BRW_INDEX_BYTE;
- case GL_UNSIGNED_SHORT: return BRW_INDEX_WORD;
- case GL_UNSIGNED_INT: return BRW_INDEX_DWORD;
- default: unreachable("not reached");
- }
-}
-
static void
copy_array_to_vbo_array(struct brw_context *brw,
struct brw_vertex_element *element,
brw_prepare_vertices(struct brw_context *brw)
{
struct gl_context *ctx = &brw->ctx;
- /* CACHE_NEW_VS_PROG */
+ /* BRW_NEW_VS_PROG_DATA */
GLbitfield64 vs_inputs = brw->vs.prog_data->inputs_read;
const unsigned char *ptr = NULL;
GLuint interleaved = 0;
void
brw_prepare_shader_draw_parameters(struct brw_context *brw)
{
- int *gl_basevertex_value;
- if (brw->draw.indexed) {
- brw->draw.start_vertex_location += brw->ib.start_vertex_offset;
- brw->draw.base_vertex_location += brw->vb.start_vertex_bias;
- gl_basevertex_value = &brw->draw.base_vertex_location;
- } else {
- brw->draw.start_vertex_location += brw->vb.start_vertex_bias;
- gl_basevertex_value = &brw->draw.start_vertex_location;
- }
-
/* For non-indirect draws, upload gl_BaseVertex. */
if (brw->vs.prog_data->uses_vertexid && brw->draw.draw_params_bo == NULL) {
- intel_upload_data(brw, gl_basevertex_value, 4, 4,
+ intel_upload_data(brw, &brw->draw.gl_basevertex, 4, 4,
&brw->draw.draw_params_bo,
&brw->draw.draw_params_offset);
}
.dirty = {
.mesa = _NEW_POLYGON,
.brw = BRW_NEW_BATCH |
- BRW_NEW_VERTICES,
- .cache = CACHE_NEW_VS_PROG,
+ BRW_NEW_VERTICES |
+ BRW_NEW_VS_PROG_DATA,
},
.emit = brw_emit_vertices,
};
.dirty = {
.mesa = 0,
.brw = BRW_NEW_INDICES,
- .cache = 0,
},
.emit = brw_upload_indices,
};
BEGIN_BATCH(3);
OUT_BATCH(CMD_INDEX_BUFFER << 16 |
cut_index_setting |
- brw_get_index_type(index_buffer->type) << 8 |
+ brw_get_index_type(index_buffer->type) |
1);
OUT_RELOC(brw->ib.bo,
I915_GEM_DOMAIN_VERTEX, 0,
.mesa = 0,
.brw = BRW_NEW_BATCH |
BRW_NEW_INDEX_BUFFER,
- .cache = 0,
},
.emit = brw_emit_index_buffer,
};