i915: Enable ARB_vertex_shader for both i915 and i830.
Since the TNL is all done in software anyway, it should be the same to the user who's probably using ARB_vertex_program otherwise, but gives them a nicer programming environment.
This commit is contained in:
parent
96a3c69d48
commit
7d4b7460b0
|
@ -1076,7 +1076,9 @@ intelRunPipeline(GLcontext * ctx)
|
|||
intel->NewGLState = 0;
|
||||
}
|
||||
|
||||
intel_map_vertex_shader_textures(ctx);
|
||||
_tnl_run_pipeline(ctx);
|
||||
intel_unmap_vertex_shader_textures(ctx);
|
||||
|
||||
_mesa_unlock_context_textures(ctx);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,9 @@ static const struct dri_extension card_extensions[] = {
|
|||
{ "GL_ARB_multitexture", NULL },
|
||||
{ "GL_ARB_point_parameters", GL_ARB_point_parameters_functions },
|
||||
{ "GL_ARB_point_sprite", NULL },
|
||||
{ "GL_ARB_shader_objects", GL_ARB_shader_objects_functions },
|
||||
{ "GL_ARB_shading_language_100", GL_VERSION_2_0_functions },
|
||||
{ "GL_ARB_shading_language_120", GL_VERSION_2_1_functions },
|
||||
{ "GL_ARB_sync", GL_ARB_sync_functions },
|
||||
{ "GL_ARB_texture_border_clamp", NULL },
|
||||
{ "GL_ARB_texture_cube_map", NULL },
|
||||
|
@ -91,6 +94,7 @@ static const struct dri_extension card_extensions[] = {
|
|||
{ "GL_ARB_texture_rectangle", NULL },
|
||||
{ "GL_ARB_vertex_array_object", GL_ARB_vertex_array_object_functions},
|
||||
{ "GL_ARB_vertex_program", GL_ARB_vertex_program_functions },
|
||||
{ "GL_ARB_vertex_shader", GL_ARB_vertex_shader_functions },
|
||||
{ "GL_ARB_window_pos", GL_ARB_window_pos_functions },
|
||||
{ "GL_EXT_blend_color", GL_EXT_blend_color_functions },
|
||||
{ "GL_EXT_blend_equation_separate", GL_EXT_blend_equation_separate_functions },
|
||||
|
@ -150,13 +154,9 @@ static const struct dri_extension brw_extensions[] = {
|
|||
{ "GL_ARB_occlusion_query", GL_ARB_occlusion_query_functions },
|
||||
{ "GL_ARB_point_sprite", NULL },
|
||||
{ "GL_ARB_seamless_cube_map", NULL },
|
||||
{ "GL_ARB_shader_objects", GL_ARB_shader_objects_functions },
|
||||
{ "GL_ARB_shading_language_100", GL_VERSION_2_0_functions },
|
||||
{ "GL_ARB_shading_language_120", GL_VERSION_2_1_functions },
|
||||
{ "GL_ARB_shadow", NULL },
|
||||
{ "GL_MESA_texture_signed_rgba", NULL },
|
||||
{ "GL_ARB_texture_non_power_of_two", NULL },
|
||||
{ "GL_ARB_vertex_shader", GL_ARB_vertex_shader_functions },
|
||||
{ "GL_EXT_shadow_funcs", NULL },
|
||||
{ "GL_EXT_stencil_two_side", GL_EXT_stencil_two_side_functions },
|
||||
{ "GL_EXT_texture_sRGB", NULL },
|
||||
|
|
|
@ -558,6 +558,43 @@ intelInitSpanFuncs(GLcontext * ctx)
|
|||
swdd->SpanRenderFinish = intelSpanRenderFinish;
|
||||
}
|
||||
|
||||
void
|
||||
intel_map_vertex_shader_textures(GLcontext *ctx)
|
||||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
int i;
|
||||
|
||||
if (ctx->VertexProgram._Current == NULL)
|
||||
return;
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
|
||||
if (ctx->Texture.Unit[i]._ReallyEnabled &&
|
||||
ctx->VertexProgram._Current->Base.TexturesUsed[i] != 0) {
|
||||
struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current;
|
||||
|
||||
intel_tex_map_images(intel, intel_texture_object(texObj));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
intel_unmap_vertex_shader_textures(GLcontext *ctx)
|
||||
{
|
||||
struct intel_context *intel = intel_context(ctx);
|
||||
int i;
|
||||
|
||||
if (ctx->VertexProgram._Current == NULL)
|
||||
return;
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
|
||||
if (ctx->Texture.Unit[i]._ReallyEnabled &&
|
||||
ctx->VertexProgram._Current->Base.TexturesUsed[i] != 0) {
|
||||
struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current;
|
||||
|
||||
intel_tex_unmap_images(intel, intel_texture_object(texObj));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Plug in appropriate span read/write functions for the given renderbuffer.
|
||||
|
|
|
@ -36,5 +36,7 @@ void intel_renderbuffer_map(struct intel_context *intel,
|
|||
struct gl_renderbuffer *rb);
|
||||
void intel_renderbuffer_unmap(struct intel_context *intel,
|
||||
struct gl_renderbuffer *rb);
|
||||
void intel_map_vertex_shader_textures(GLcontext *ctx);
|
||||
void intel_unmap_vertex_shader_textures(GLcontext *ctx);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue