*
**************************************************************************/
-#include "main/imports.h"
+#include "util/imports.h"
#include "main/accum.h"
#include "main/api_exec.h"
#include "main/context.h"
case GL_DEBUG_OUTPUT_SYNCHRONOUS:
st_update_debug_callback(st);
break;
+ case GL_BLACKHOLE_RENDER_INTEL:
+ st->pipe->set_frontend_noop(st->pipe, ctx->IntelBlackholeRender);
+ break;
default:
break;
}
switch (entry->type) {
case PIPE_SHADER_VERTEX:
- cso_delete_vertex_shader(st->cso_context, entry->shader);
+ st->pipe->bind_vs_state(st->pipe, NULL);
+ st->pipe->delete_vs_state(st->pipe, entry->shader);
break;
case PIPE_SHADER_FRAGMENT:
- cso_delete_fragment_shader(st->cso_context, entry->shader);
+ st->pipe->bind_fs_state(st->pipe, NULL);
+ st->pipe->delete_fs_state(st->pipe, entry->shader);
break;
case PIPE_SHADER_GEOMETRY:
- cso_delete_geometry_shader(st->cso_context, entry->shader);
+ st->pipe->bind_gs_state(st->pipe, NULL);
+ st->pipe->delete_gs_state(st->pipe, entry->shader);
break;
case PIPE_SHADER_TESS_CTRL:
- cso_delete_tessctrl_shader(st->cso_context, entry->shader);
+ st->pipe->bind_tcs_state(st->pipe, NULL);
+ st->pipe->delete_tcs_state(st->pipe, entry->shader);
break;
case PIPE_SHADER_TESS_EVAL:
- cso_delete_tesseval_shader(st->cso_context, entry->shader);
+ st->pipe->bind_tes_state(st->pipe, NULL);
+ st->pipe->delete_tes_state(st->pipe, entry->shader);
break;
case PIPE_SHADER_COMPUTE:
- cso_delete_compute_shader(st->cso_context, entry->shader);
+ st->pipe->bind_compute_state(st->pipe, NULL);
+ st->pipe->delete_compute_state(st->pipe, entry->shader);
break;
default:
unreachable("invalid shader type in free_zombie_shaders()");
st->ctx = ctx;
st->pipe = pipe;
-
- /* state tracker needs the VBO module */
- _vbo_CreateContext(ctx);
-
st->dirty = ST_ALL_STATES_MASK;
st->can_bind_const_buffer_as_vertex =
STATIC_ASSERT(sizeof(struct st_util_vertex) == 9 * sizeof(float));
memset(&st->util_velems, 0, sizeof(st->util_velems));
- st->util_velems[0].src_offset = 0;
- st->util_velems[0].vertex_buffer_index = 0;
- st->util_velems[0].src_format = PIPE_FORMAT_R32G32B32_FLOAT;
- st->util_velems[1].src_offset = 3 * sizeof(float);
- st->util_velems[1].vertex_buffer_index = 0;
- st->util_velems[1].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
- st->util_velems[2].src_offset = 7 * sizeof(float);
- st->util_velems[2].vertex_buffer_index = 0;
- st->util_velems[2].src_format = PIPE_FORMAT_R32G32_FLOAT;
+ st->util_velems.velems[0].src_offset = 0;
+ st->util_velems.velems[0].vertex_buffer_index = 0;
+ st->util_velems.velems[0].src_format = PIPE_FORMAT_R32G32B32_FLOAT;
+ st->util_velems.velems[1].src_offset = 3 * sizeof(float);
+ st->util_velems.velems[1].vertex_buffer_index = 0;
+ st->util_velems.velems[1].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ st->util_velems.velems[2].src_offset = 7 * sizeof(float);
+ st->util_velems.velems[2].vertex_buffer_index = 0;
+ st->util_velems.velems[2].src_format = PIPE_FORMAT_R32G32_FLOAT;
}
- /* we want all vertex data to be placed in buffer objects */
- vbo_use_buffer_objects(ctx);
-
/* Need these flags:
*/
ctx->FragmentProgram._MaintainTexEnvProgram = GL_TRUE;
return NULL;
}
+ /* This must be done after extensions are initialized to enable persistent
+ * mappings immediately.
+ */
+ _vbo_CreateContext(ctx, true);
+
_mesa_initialize_dispatch_tables(ctx);
_mesa_initialize_vbo_vtxfmt(ctx);
st_init_driver_flags(st);
simple_mtx_destroy(&st->zombie_sampler_views.mutex);
simple_mtx_destroy(&st->zombie_shaders.mutex);
- st_reference_prog(st, &st->fp, NULL);
- st_reference_prog(st, &st->gp, NULL);
- st_reference_prog(st, &st->vp, NULL);
- st_reference_prog(st, &st->tcp, NULL);
- st_reference_prog(st, &st->tep, NULL);
- st_reference_prog(st, &st->cp, NULL);
+ st_release_program(st, &st->fp);
+ st_release_program(st, &st->gp);
+ st_release_program(st, &st->vp);
+ st_release_program(st, &st->tcp);
+ st_release_program(st, &st->tep);
+ st_release_program(st, &st->cp);
/* release framebuffer in the winsys buffers list */
LIST_FOR_EACH_ENTRY_SAFE_REV(stfb, next, &st->winsys_buffers, head) {