-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
To illustrate the goal of these patches I've attached an archive of all surface cleanup patches to this mail. The goal is to merge GL buffer object handling of buffers, surfaces and volumes. The main motivation for this is to handle WINED3D_MAP_DISCARD in one central place once dynamic resource handling is implemented in the command stream.
The 4 patches in this series move location and buffer handling code from volume.c to resource.c. The next patches remove broken(overlay, partial rectangle handling) and half-broken(direct DIB maps, buffers) surface features. The next step is migrating surfaces to the resource location and loading code in resource.c. After that WINED3D_LOCATION_DISCARDED handling is improved and previously removed surface features re-added.
Due to the removal of some surface features, performance regressions are possible. I think it's unlikely because the existing surface PBO code doesn't really do what it is supposed to do. Functional regressions should not happen.
This patchset does not deal with d3d buffers. The central aspect of merging buffer handling is removing color and rhw conversion support. (or, alternatively, adding a separate location WINED3D_LOCATION_CONVBUFFER if we really want to keep the conversion code.)
There are some problems later in the patchset that need fixing: Patch 24 is too big, patches 48 and 52 need to be moved. Non-GL ddraw rendering is broken at the moment (black screen). My patches don't make this any worse, but I'd like to fix it to make sure non-GL operation works as intended.
Cheers, Stefan