diff options
-rw-r--r-- | src/mesa/drivers/dri/i915/i830_context.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i915/i915_context.c | 49 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_context.c | 44 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_context.h | 1 |
4 files changed, 54 insertions, 42 deletions
diff --git a/src/mesa/drivers/dri/i915/i830_context.c b/src/mesa/drivers/dri/i915/i830_context.c index f801abcf43a..663909ea4b6 100644 --- a/src/mesa/drivers/dri/i915/i830_context.c +++ b/src/mesa/drivers/dri/i915/i830_context.c @@ -69,6 +69,8 @@ i830CreateContext(const struct gl_config * mesaVis, return false; } + intel_init_texture_formats(ctx); + _math_matrix_ctr(&intel->ViewportMatrix); /* Initialize swrast, tnl driver tables: */ diff --git a/src/mesa/drivers/dri/i915/i915_context.c b/src/mesa/drivers/dri/i915/i915_context.c index ca03ad0416c..c5e589d8e6e 100644 --- a/src/mesa/drivers/dri/i915/i915_context.c +++ b/src/mesa/drivers/dri/i915/i915_context.c @@ -88,6 +88,55 @@ i915InitDriverFunctions(struct dd_function_table *functions) functions->UpdateState = i915InvalidateState; } +/* Note: this is shared with i830. */ +void +intel_init_texture_formats(struct gl_context *ctx) +{ + struct intel_context *intel = intel_context(ctx); + struct intel_screen *intel_screen = intel->intelScreen; + + ctx->TextureFormatSupported[MESA_FORMAT_ARGB8888] = true; + if (intel_screen->deviceID != PCI_CHIP_I830_M && + intel_screen->deviceID != PCI_CHIP_845_G) + ctx->TextureFormatSupported[MESA_FORMAT_XRGB8888] = true; + ctx->TextureFormatSupported[MESA_FORMAT_ARGB4444] = true; + ctx->TextureFormatSupported[MESA_FORMAT_ARGB1555] = true; + ctx->TextureFormatSupported[MESA_FORMAT_RGB565] = true; + ctx->TextureFormatSupported[MESA_FORMAT_L8] = true; + ctx->TextureFormatSupported[MESA_FORMAT_A8] = true; + ctx->TextureFormatSupported[MESA_FORMAT_I8] = true; + ctx->TextureFormatSupported[MESA_FORMAT_AL88] = true; + + /* Depth and stencil */ + ctx->TextureFormatSupported[MESA_FORMAT_S8_Z24] = true; + ctx->TextureFormatSupported[MESA_FORMAT_X8_Z24] = true; + ctx->TextureFormatSupported[MESA_FORMAT_S8] = intel->has_separate_stencil; + + /* + * This was disabled in initial FBO enabling to avoid combinations + * of depth+stencil that wouldn't work together. We since decided + * that it was OK, since it's up to the app to come up with the + * combo that actually works, so this can probably be re-enabled. + */ + /* + ctx->TextureFormatSupported[MESA_FORMAT_Z16] = true; + ctx->TextureFormatSupported[MESA_FORMAT_Z24] = true; + */ + + /* ctx->Extensions.MESA_ycbcr_texture */ + ctx->TextureFormatSupported[MESA_FORMAT_YCBCR] = true; + ctx->TextureFormatSupported[MESA_FORMAT_YCBCR_REV] = true; + + /* GL_3DFX_texture_compression_FXT1 */ + ctx->TextureFormatSupported[MESA_FORMAT_RGB_FXT1] = true; + ctx->TextureFormatSupported[MESA_FORMAT_RGBA_FXT1] = true; + + /* GL_EXT_texture_compression_s3tc */ + ctx->TextureFormatSupported[MESA_FORMAT_RGB_DXT1] = true; + ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT1] = true; + ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT3] = true; + ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT5] = true; +} extern const struct tnl_pipeline_stage *intel_pipeline[]; diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index 4973b247c88..068b305bded 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -629,48 +629,8 @@ intelInitContext(struct intel_context *intel, intel->must_use_separate_stencil = intel->intelScreen->hw_must_use_separate_stencil; intel->has_hiz = intel->intelScreen->hw_has_hiz; - memset(&ctx->TextureFormatSupported, 0, - sizeof(ctx->TextureFormatSupported)); - ctx->TextureFormatSupported[MESA_FORMAT_ARGB8888] = true; - if (devID != PCI_CHIP_I830_M && devID != PCI_CHIP_845_G) - ctx->TextureFormatSupported[MESA_FORMAT_XRGB8888] = true; - ctx->TextureFormatSupported[MESA_FORMAT_ARGB4444] = true; - ctx->TextureFormatSupported[MESA_FORMAT_ARGB1555] = true; - ctx->TextureFormatSupported[MESA_FORMAT_RGB565] = true; - ctx->TextureFormatSupported[MESA_FORMAT_L8] = true; - ctx->TextureFormatSupported[MESA_FORMAT_A8] = true; - ctx->TextureFormatSupported[MESA_FORMAT_I8] = true; - ctx->TextureFormatSupported[MESA_FORMAT_AL88] = true; - - /* Depth and stencil */ - ctx->TextureFormatSupported[MESA_FORMAT_S8_Z24] = true; - ctx->TextureFormatSupported[MESA_FORMAT_X8_Z24] = true; - ctx->TextureFormatSupported[MESA_FORMAT_S8] = intel->has_separate_stencil; - - /* - * This was disabled in initial FBO enabling to avoid combinations - * of depth+stencil that wouldn't work together. We since decided - * that it was OK, since it's up to the app to come up with the - * combo that actually works, so this can probably be re-enabled. - */ - /* - ctx->TextureFormatSupported[MESA_FORMAT_Z16] = true; - ctx->TextureFormatSupported[MESA_FORMAT_Z24] = true; - */ - - /* ctx->Extensions.MESA_ycbcr_texture */ - ctx->TextureFormatSupported[MESA_FORMAT_YCBCR] = true; - ctx->TextureFormatSupported[MESA_FORMAT_YCBCR_REV] = true; - - /* GL_3DFX_texture_compression_FXT1 */ - ctx->TextureFormatSupported[MESA_FORMAT_RGB_FXT1] = true; - ctx->TextureFormatSupported[MESA_FORMAT_RGBA_FXT1] = true; - - /* GL_EXT_texture_compression_s3tc */ - ctx->TextureFormatSupported[MESA_FORMAT_RGB_DXT1] = true; - ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT1] = true; - ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT3] = true; - ctx->TextureFormatSupported[MESA_FORMAT_RGBA_DXT5] = true; + memset(&ctx->TextureFormatSupported, + 0, sizeof(ctx->TextureFormatSupported)); driParseConfigFiles(&intel->optionCache, &intelScreen->optionCache, sPriv->myNum, (intel->gen >= 4) ? "i965" : "i915"); diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index a61ac4c164f..d49255b44a2 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -588,6 +588,7 @@ void intel_prepare_render(struct intel_context *intel); void i915_set_buf_info_for_region(uint32_t *state, struct intel_region *region, uint32_t buffer_id); +void intel_init_texture_formats(struct gl_context *ctx); /*====================================================================== * Inline conversion functions. |