[r300] Add more struct names for r300_hw_state
[mesa.git] / src / mesa / drivers / dri / r300 / radeon_context.c
index 22f943ebf38887ba43c7f3f0b186e642d449d210..787d4b5c57c7b818c045c4199f4bbfcbf24a8b8d 100644 (file)
@@ -90,9 +90,15 @@ static const GLubyte *radeonGetString(GLcontext * ctx, GLenum name)
                offset = driGetRendererString(buffer, chipname, DRIVER_DATE,
                                              agp_mode);
 
+               if (IS_R300_CLASS(radeon->radeonScreen)) {
                sprintf(&buffer[offset], " %sTCL",
+                       (radeon->radeonScreen->chip_flags & RADEON_CHIPSET_TCL)
+                       ? "" : "NO-");
+               } else {
+                       sprintf(&buffer[offset], " %sTCL",
                        !(radeon->TclFallback & RADEON_TCL_FALLBACK_TCL_DISABLE)
                        ? "" : "NO-");
+               }
 
                return (GLubyte *) buffer;
        }
@@ -150,7 +156,7 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
        radeon->dri.hwContext = driContextPriv->hHWContext;
        radeon->dri.hwLock = &sPriv->pSAREA->lock;
        radeon->dri.fd = sPriv->fd;
-       radeon->dri.drmMinor = sPriv->drmMinor;
+       radeon->dri.drmMinor = sPriv->drm_version.minor;
 
        radeon->radeonScreen = screen;
        radeon->sarea = (drm_radeon_sarea_t *) ((GLubyte *) sPriv->pSAREA +
@@ -171,9 +177,6 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
                        radeon->do_usleeps ? "usleeps" : "busy waits",
                        fthrottle_mode, radeon->radeonScreen->irq);
 
-       radeon->vblank_flags = (radeon->radeonScreen->irq != 0)
-           ? driGetDefaultVBlankFlags(&radeon->optionCache) : VBLANK_FLAG_NO_IRQ;
-
        (*dri_interface->getUST) (&radeon->swap_ust);
 
        return GL_TRUE;
@@ -271,9 +274,15 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
                                radeon->glCtx);
 
                if (radeon->dri.drawable != driDrawPriv) {
-                       driDrawableInitVBlank(driDrawPriv,
-                                             radeon->vblank_flags,
-                                             &radeon->vbl_seq);
+                       if (driDrawPriv->swap_interval == (unsigned)-1) {
+                               driDrawPriv->vblFlags =
+                                       (radeon->radeonScreen->irq != 0)
+                                       ? driGetDefaultVBlankFlags(&radeon->
+                                                                  optionCache)
+                                       : VBLANK_FLAG_NO_IRQ;
+
+                               driDrawableInitVBlank(driDrawPriv);
+                       }
                }
 
                radeon->dri.readable = driReadPriv;
@@ -283,7 +292,6 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
                        radeon->dri.drawable = driDrawPriv;
 
                        radeonSetCliprects(radeon);
-                       r300UpdateWindow(radeon->glCtx);
                        r300UpdateViewportOffset(radeon->glCtx);
                }
 
@@ -293,12 +301,9 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
                                    (GLframebuffer *) driReadPriv->
                                    driverPrivate);
 
-               if (!radeon->glCtx->Viewport.Width) {
-                       _mesa_set_viewport(radeon->glCtx, 0, 0,
-                                          driDrawPriv->w, driDrawPriv->h);
-               }
-
                _mesa_update_state(radeon->glCtx);              
+
+               radeonUpdatePageFlipping(radeon);
        } else {
                if (RADEON_DEBUG & DEBUG_DRI)
                        fprintf(stderr, "%s ctx is null\n", __FUNCTION__);