summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/intel/intel_extensions.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-07-29 13:00:09 -0700
committerEric Anholt <eric@anholt.net>2009-10-01 14:52:44 -0700
commit862a2a55b35d1dec9224b025a6e7a0cf8593a6a7 (patch)
treedc540b1264209643303c29060ae5f6ffde46e795 /src/mesa/drivers/dri/intel/intel_extensions.c
parent67f4d626d39f2c340fa1632d3e4344c547301508 (diff)
i915: Add optional support for ARB_fragment_shader under a driconf option.
Other vendors have enabled ARB_fragment_shader as part of OpenGL 2.0 enablement even on hardware like the 915 with no dynamic branching or dFdx/dFdy support. But for now we'll leave it disabled because we don't do any flattening of ifs or loops, which is rather restrictive. This support is not complete, and may be unstable depending on your shaders. It passes 10/15 of the piglit glsl tests, but hangs on glean glsl1.
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_extensions.c')
-rw-r--r--src/mesa/drivers/dri/intel/intel_extensions.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index f10eda7cc7..6831cbbfc8 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -182,6 +182,10 @@ static const struct dri_extension ttm_extensions[] = {
{ NULL, NULL }
};
+static const struct dri_extension fragment_shader_extensions[] = {
+ { "GL_ARB_fragment_shader", NULL },
+ { NULL, NULL }
+};
/**
* Initializes potential list of extensions if ctx == NULL, or actually enables
@@ -205,6 +209,10 @@ intelInitExtensions(GLcontext *ctx, GLboolean enable_imaging)
driInitExtensions(ctx, brw_extensions, GL_FALSE);
if (intel == NULL || IS_915(intel->intelScreen->deviceID)
- || IS_945(intel->intelScreen->deviceID))
+ || IS_945(intel->intelScreen->deviceID)) {
driInitExtensions(ctx, i915_extensions, GL_FALSE);
+
+ if (intel == NULL || driQueryOptionb(&intel->optionCache, "fragment_shader"))
+ driInitExtensions(ctx, fragment_shader_extensions, GL_FALSE);
+ }
}