2013/8/26 Stefan Dösinger <stefan(a)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).