2013/8/26 Stefan Dösinger stefan@codeweavers.com:
Try 2: *) Require only GPU access for buffers *) Reduce number of checkGLcall invocations
*) Remove a return from an ERR case
dlls/wined3d/utils.c | 1 + dlls/wined3d/volume.c | 168 ++++++++++++++++++++++++++++++++++++----- dlls/wined3d/wined3d_private.h | 7 +- 3 files changed, 157 insertions(+), 19 deletions(-)
case WINED3D_LOCATION_BUFFER:
if (!volume->pbo || !(volume->flags & WINED3D_VFLAG_PBO))
ERR("Trying to load WINED3D_LOCATION_BUFFER without setting it up first.\n");
if (volume->locations & WINED3D_LOCATION_DISCARDED)
{
TRACE("Volume previously discarded, nothing to do.\n");
wined3d_volume_invalidate_location(volume, WINED3D_LOCATION_DISCARDED);
}
else if (volume->locations & WINED3D_LOCATION_TEXTURE_RGB)
{
struct wined3d_bo_address data = {volume->pbo, NULL};
volume_bind_and_dirtify(volume, context);
wined3d_volume_download_data(volume, context, &data);
}
else
{
FIXME("Implement WINED3D_LOCATION_SYSMEM loading from %s.\n",
wined3d_debug_location(volume->locations));
return;
}
wined3d_volume_validate_location(volume, WINED3D_LOCATION_BUFFER);
break;
Not really an actual review, but that FIXME looks wrong (copy-paste remnant probably).
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 2013-08-26 16:16, schrieb Matteo Bruni:
2013/8/26 Stefan Dösinger stefan@codeweavers.com:
Try 2: *) Require only GPU access for buffers *) Reduce number of checkGLcall invocations *) Remove a return from an ERR case --- dlls/wined3d/utils.c | 1 + dlls/wined3d/volume.c | 168 ++++++++++++++++++++++++++++++++++++----- dlls/wined3d/wined3d_private.h | 7 +- 3 files changed, 157 insertions(+), 19 deletions(-)
case WINED3D_LOCATION_BUFFER: + if
(!volume->pbo || !(volume->flags & WINED3D_VFLAG_PBO)) + ERR("Trying to load WINED3D_LOCATION_BUFFER without setting it up first.\n"); + + if (volume->locations & WINED3D_LOCATION_DISCARDED) + { + TRACE("Volume previously discarded, nothing to do.\n"); + wined3d_volume_invalidate_location(volume, WINED3D_LOCATION_DISCARDED); + } + else if (volume->locations & WINED3D_LOCATION_TEXTURE_RGB) + { + struct wined3d_bo_address data = {volume->pbo, NULL}; + volume_bind_and_dirtify(volume, context); + wined3d_volume_download_data(volume, context, &data); + } + else + {
FIXME("Implement WINED3D_LOCATION_SYSMEM loading
from %s.\n", + wined3d_debug_location(volume->locations)); + return; + } + wined3d_volume_validate_location(volume, WINED3D_LOCATION_BUFFER); + break; +
Not really an actual review, but that FIXME looks wrong (copy-paste remnant probably).
Right, good catch.