On Thu, Jan 9, 2014 at 6:19 PM, Paul Berry <stereotype...@gmail.com> wrote: > This will allow testing of compute shader functionality before it is > completed. > > To enable ARB_compute_shader functionality in the i965 driver, set > INTEL_COMPUTE_SHADER=1. > --- > src/mesa/drivers/dri/i965/brw_context.c | 11 ++++++++++- > src/mesa/drivers/dri/i965/intel_extensions.c | 2 ++ > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.c > b/src/mesa/drivers/dri/i965/brw_context.c > index 1b42751..76dd9be 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -298,10 +298,17 @@ brw_initialize_context_constants(struct brw_context > *brw) > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits = > BRW_MAX_TEX_UNIT; > else > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits = 0; > + if (getenv("INTEL_COMPUTE_SHADER")) {
What about trying to make use of MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader? We could add extensions.c:bool _mesa_is_extension_override_enabled(char *) And then if (_mesa_is_extension_override_enabled("GL_ARB_compute_shader")) Or, similarly, get overrides shoved into ctx->Extensions to allow checking for overrides at this early stage. -Jordan > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits = > BRW_MAX_TEX_UNIT; > + ctx->Const.MaxUniformBufferBindings += 12; > + } else { > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits = 0; > + } > ctx->Const.MaxCombinedTextureImageUnits = > ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits + > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits + > - ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits; > + ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits + > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits; > > ctx->Const.MaxTextureLevels = 14; /* 8192 */ > if (ctx->Const.MaxTextureLevels > MAX_TEXTURE_LEVELS) > @@ -425,9 +432,11 @@ brw_initialize_context_constants(struct brw_context *brw) > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicCounters = > MAX_ATOMIC_COUNTERS; > ctx->Const.Program[MESA_SHADER_VERTEX].MaxAtomicCounters = > MAX_ATOMIC_COUNTERS; > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicCounters = > MAX_ATOMIC_COUNTERS; > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicCounters = > MAX_ATOMIC_COUNTERS; > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicBuffers = > BRW_MAX_ABO; > ctx->Const.Program[MESA_SHADER_VERTEX].MaxAtomicBuffers = BRW_MAX_ABO; > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicBuffers = > BRW_MAX_ABO; > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers = BRW_MAX_ABO; > ctx->Const.MaxCombinedAtomicBuffers = 3 * BRW_MAX_ABO; > } > > diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c > b/src/mesa/drivers/dri/i965/intel_extensions.c > index de07b7f..27bc97b 100644 > --- a/src/mesa/drivers/dri/i965/intel_extensions.c > +++ b/src/mesa/drivers/dri/i965/intel_extensions.c > @@ -294,6 +294,8 @@ intelInitExtensions(struct gl_context *ctx) > ctx->Extensions.ARB_transform_feedback_instanced = true; > ctx->Extensions.ARB_draw_indirect = true; > } > + if (getenv("INTEL_COMPUTE_SHADER")) > + ctx->Extensions.ARB_compute_shader = true; > } > > if (brw->gen == 5 || can_write_oacontrol(brw)) > -- > 1.8.5.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev