2013/8/26 Stefan Dösinger <ste...@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).