• Zebediah Figura's avatar
    d3d8: Upload sysmem vertex buffers into the streaming buffer in d3d8_device_DrawPrimitive(). · fc0f0090
    Zebediah Figura authored
    Bloodrayne: Terminal Cut (and Bloodrayne 2: Terminal Cut, and probably other
    games in the series) streams from a SYSTEMMEM index buffer, updating it and
    drawing from it every frame. This is currently slow on Wine, since each map
    needs to wait for the previous upload (on the CS) to complete.
    
    There are a few ways to avoid waiting, but this patch takes the approach of
    effectively uploading from the SYSTEMMEM buffer on the client side, while using
    a dynamic buffer to avoid client/CS synchronization. This brings performance
    from 20-30 FPS to a (locked) 60, on NVidia GL drivers.
    fc0f0090
buffer.c 20.7 KB