VirtualBox

Ignore:
Timestamp:
Oct 29, 2016 11:28:48 AM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111617
Message:

DevVGA_SVGA: fixed index/vertex buffer usage with recent Mesa

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp

    r63562 r64483  
    11031103        break;
    11041104
     1105    case SVGA3D_SURFACE_HINT_INDEXBUFFER | SVGA3D_SURFACE_HINT_VERTEXBUFFER:
    11051106    case SVGA3D_SURFACE_HINT_INDEXBUFFER:
    1106         if (pSurface->u.pIndexBuffer)
    1107             pSurface->u.pIndexBuffer->Release();
    1108         break;
    1109 
    11101107    case SVGA3D_SURFACE_HINT_VERTEXBUFFER:
    1111         if (pSurface->u.pVertexBuffer)
    1112             pSurface->u.pVertexBuffer->Release();
     1108        if (pSurface->fu32ActualUsageFlags == SVGA3D_SURFACE_HINT_VERTEXBUFFER)
     1109        {
     1110            if (pSurface->u.pVertexBuffer)
     1111                pSurface->u.pVertexBuffer->Release();
     1112        }
     1113        else if (pSurface->fu32ActualUsageFlags == SVGA3D_SURFACE_HINT_INDEXBUFFER)
     1114        {
     1115            if (pSurface->u.pIndexBuffer)
     1116                pSurface->u.pIndexBuffer->Release();
     1117        }
     1118        else
     1119            AssertMsg(pSurface->u.pVertexBuffer == NULL, ("fu32ActualUsageFlags %x\n", pSurface->fu32ActualUsageFlags));
    11131120        break;
    11141121
     
    19301937    }
    19311938
     1939    case SVGA3D_SURFACE_HINT_VERTEXBUFFER | SVGA3D_SURFACE_HINT_INDEXBUFFER:
    19321940    case SVGA3D_SURFACE_HINT_VERTEXBUFFER:
    1933         fVertex = true;
     1941        fVertex = RT_BOOL(pSurface->fu32ActualUsageFlags & SVGA3D_SURFACE_HINT_VERTEXBUFFER);
    19341942        /* no break */
    19351943
     
    19731981
    19741982    default:
    1975         AssertFailed();
     1983        AssertMsgFailed(("Unsupported surface hint 0x%08X\n", pSurface->flags & VMSVGA3D_SURFACE_HINT_SWITCH_MASK));
    19761984        break;
    19771985    }
     
    48334841            }
    48344842            pVertexSurface->flags |= SVGA3D_SURFACE_HINT_VERTEXBUFFER;
     4843            pVertexSurface->fu32ActualUsageFlags |= SVGA3D_SURFACE_HINT_VERTEXBUFFER;
    48354844        }
    48364845        else
     
    50385047                }
    50395048                pIndexSurface->flags |= SVGA3D_SURFACE_HINT_INDEXBUFFER;
     5049                pIndexSurface->fu32ActualUsageFlags |= SVGA3D_SURFACE_HINT_INDEXBUFFER;
    50405050            }
    50415051            else
Note: See TracChangeset for help on using the changeset viewer.

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