Track Radeon driver symlinks in Git.
[mesa.git] / src / mesa / drivers / dri / r300 / r300_context.c
index dbd5ce589e3546122a2e732103fab7221d241b1a..6f3aab986d236269f06a2c8ef3a5f57d342b1ef8 100644 (file)
@@ -124,6 +124,8 @@ const struct dri_extension card_extensions[] = {
   {"GL_EXT_texture_lod_bias",          NULL},
   {"GL_EXT_texture_mirror_clamp",      NULL},
   {"GL_EXT_texture_rectangle",         NULL},
+  {"GL_EXT_texture_sRGB",              NULL},
+  {"GL_EXT_vertex_array_bgra",         NULL},
   {"GL_ATI_separate_stencil",          GL_ATI_separate_stencil_functions},
   {"GL_ATI_texture_env_combine3",      NULL},
   {"GL_ATI_texture_mirror_once",       NULL},
@@ -153,10 +155,6 @@ const struct dri_extension gl_20_extension[] = {
 
 static const struct tnl_pipeline_stage *r300_pipeline[] = {
 
-       /* Try and go straight to t&l
-        */
-       &_r300_tcl_stage,
-
        /* Catch any t&l fallbacks
         */
        &_tnl_vertex_transform_stage,
@@ -268,17 +266,20 @@ static void r300InitConstValues(GLcontext *ctx, radeonScreenPtr screen)
            driQueryOptioni(&r300->radeon.optionCache, "texture_coord_units");
        ctx->Const.MaxTextureUnits = MIN2(ctx->Const.MaxTextureImageUnits,
                 ctx->Const.MaxTextureCoordUnits);
-    /* FIXME: When no memory manager is available we should set this 
-     * to some reasonable value based on texture memory pool size */
-    /* FIXME: r5xx limit is 4096 */
-    ctx->Const.MaxTextureLevels = 12;
+
        ctx->Const.MaxTextureMaxAnisotropy = 16.0;
        ctx->Const.MaxTextureLodBias = 16.0;
 
-       if (screen->chip_family >= CHIP_FAMILY_RV515)
+       if (screen->chip_family >= CHIP_FAMILY_RV515) {
                ctx->Const.MaxTextureLevels = 13;
-       else
+               ctx->Const.MaxCubeTextureLevels = 13;
+               ctx->Const.MaxTextureRectSize = 4096;
+       }
+       else {
                ctx->Const.MaxTextureLevels = 12;
+               ctx->Const.MaxCubeTextureLevels = 12;
+               ctx->Const.MaxTextureRectSize = 2048;
+       }
 
        ctx->Const.MinPointSize = 1.0;
        ctx->Const.MinPointSizeAA = 1.0;
@@ -415,6 +416,8 @@ GLboolean r300CreateContext(const __GLcontextModes * glVisual,
 
        r300InitConstValues(ctx, screen);
 
+       _mesa_set_mvp_with_dp4( ctx, GL_TRUE );
+
        /* Initialize the software rasterizer and helper modules.
         */
        _swrast_CreateContext(ctx);
@@ -436,8 +439,11 @@ GLboolean r300CreateContext(const __GLcontextModes * glVisual,
        _tnl_allow_pixel_fog(ctx, GL_FALSE);
        _tnl_allow_vertex_fog(ctx, GL_TRUE);
 
-       if (!r300->options.hw_tcl_enabled)
+       if (r300->options.hw_tcl_enabled) {
+               r300InitDraw(ctx);
+       } else {
                r300InitSwtcl(ctx);
+       }
 
        radeon_fbo_init(&r300->radeon);
        radeonInitSpanFuncs( ctx );