VirtualBox

Changeset 50100 in vbox


Ignore:
Timestamp:
Jan 17, 2014 6:32:44 PM (11 years ago)
Author:
vboxsync
Message:

crOpenGL: bugfixes

Location:
trunk/src/VBox
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/include/cr_version.h

    r50095 r50100  
    4040#define SHCROGL_SSM_VERSION_WITH_ALLOCATED_KEYS                     41
    4141#define SHCROGL_SSM_VERSION_WITH_FB_INFO                            42
    42 #define SHCROGL_SSM_VERSION                                         42
     42#define SHCROGL_SSM_VERSION_WITH_BUGGY_KEYS                         42
     43#define SHCROGL_SSM_VERSION                                         43
    4344
    4445/* These define the Chromium release number.
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_snapshot.c

    r49216 r50100  
    14271427}
    14281428
    1429 static int32_t crStateLoadKeys(CRHashTable *pHash, PSSMHANDLE pSSM)
     1429static int32_t crStateLoadKeys(CRHashTable *pHash, PSSMHANDLE pSSM, uint32_t u32Version)
    14301430{
    14311431    uint32_t u32Key, u32Count, i;
     
    14441444        CRASSERT(u32Count);
    14451445
    1446         for (i = u32Key; i < u32Count + u32Key; ++i)
    1447         {
    1448             GLboolean fIsNew = crHashtableAllocRegisterKey(pHash, i);
    1449             CRASSERT(fIsNew);
     1446        if (u32Version > SHCROGL_SSM_VERSION_WITH_BUGGY_KEYS)
     1447        {
     1448            for (i = u32Key; i < u32Count + u32Key; ++i)
     1449            {
     1450                GLboolean fIsNew = crHashtableAllocRegisterKey(pHash, i);
     1451                CRASSERT(fIsNew);
     1452            }
    14501453        }
    14511454    }
     
    22322235        if (u32Version >= SHCROGL_SSM_VERSION_WITH_ALLOCATED_KEYS)
    22332236        {
    2234             rc = crStateLoadKeys(pContext->shared->buffersTable, pSSM);
     2237            rc = crStateLoadKeys(pContext->shared->buffersTable, pSSM, u32Version);
    22352238            AssertRCReturn(rc, rc);
    22362239        }
     
    23422345        if (u32Version >= SHCROGL_SSM_VERSION_WITH_ALLOCATED_KEYS)
    23432346        {
    2344             rc = crStateLoadKeys(pContext->shared->textureTable, pSSM);
     2347            rc = crStateLoadKeys(pContext->shared->textureTable, pSSM, u32Version);
    23452348            AssertRCReturn(rc, rc);
    23462349        }
     
    24712474        if (u32Version >= SHCROGL_SSM_VERSION_WITH_ALLOCATED_KEYS)
    24722475        {
    2473             rc = crStateLoadKeys(pContext->shared->fbTable, pSSM);
     2476            rc = crStateLoadKeys(pContext->shared->fbTable, pSSM, u32Version);
    24742477            AssertRCReturn(rc, rc);
    24752478        }
     
    24962499        if (u32Version >= SHCROGL_SSM_VERSION_WITH_ALLOCATED_KEYS)
    24972500        {
    2498             rc = crStateLoadKeys(pContext->shared->rbTable, pSSM);
     2501            rc = crStateLoadKeys(pContext->shared->rbTable, pSSM, u32Version);
    24992502            AssertRCReturn(rc, rc);
    25002503        }
  • trunk/src/VBox/GuestHost/OpenGL/util/hash.c

    r49216 r50100  
    218218
    219219        if (f->min > first)
    220             f->min = first; /* first is guarantied not to touch any prev regions */
     220            f->min = first; /* first is guaranteed not to touch any prev regions */
    221221
    222222        newMax = last;
     
    353353        if (prev)
    354354        {
    355             Assert(prev->max < (f->min - 1));
    356             walkFunc(prev->max+1, f->min - 1, data);
     355            Assert(prev->max < f->min);
     356            walkFunc(prev->max+1, f->min - prev->max, data);
     357        }
     358        else if (f->min > pool->min)
     359        {
     360            walkFunc(pool->min, f->min - pool->min, data);
    357361        }
    358362
     
    364368    if (prev->max < pool->max)
    365369    {
    366         walkFunc(prev->max+1, pool->max, data);
     370        walkFunc(prev->max+1, pool->max - prev->max, data);
    367371    }
    368372}
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp

    r50098 r50100  
    18051805    }
    18061806
     1807    virtual int EntryTexChanged(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
     1808    {
     1809        int rc = CrFbDisplayBase::EntryTexChanged(pFb, hEntry);
     1810        if (!RT_SUCCESS(rc))
     1811        {
     1812            WARN(("err"));
     1813            return rc;
     1814        }
     1815
     1816        if (mpWindow->GetParentId())
     1817        {
     1818            rc = mpWindow->Create();
     1819            if (!RT_SUCCESS(rc))
     1820            {
     1821                WARN(("err"));
     1822                return rc;
     1823            }
     1824        }
     1825
     1826        return VINF_SUCCESS;
     1827    }
     1828
    18071829    virtual int EntryRemoved(struct CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
    18081830    {
     
    28332855{
    28342856    HCR_FRAMEBUFFER hFb = crPMgrFbGetNextEnabled(0);
    2835     if (!hFb)
    2836         WARN(("no enabled framebuffer found"));
     2857//    if (!hFb)
     2858//        WARN(("no enabled framebuffer found"));
    28372859    return hFb;
    28382860}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette