[PATCH 2/7] wined3d: Use PBOs for dynamic volumes (try 2)

Matteo Bruni matteo.mystral at gmail.com
Mon Aug 26 09:16:41 CDT 2013


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



More information about the wine-devel mailing list