Re: [PATCH 1/2] wined3d: make wined3d_device_copy_sub_resource_region return an error code
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Am 2015-10-28 um 15:31 schrieb Riccardo Bortolato:
- if (src_resource->type != dst_resource->type) - { - WARN("Resource types (%s / %s) don't match.\n", - debug_d3dresourcetype(dst_resource->type), - debug_d3dresourcetype(src_resource->type)); - return; + return WINED3DERR_INVALIDCALL; } This seems like something that should be its own patch. Did you check if a 2D texture -> cube texture copy works, both on Windows (are we required to support it) and in the current implementation?
- if (dst_resource->type != WINED3D_RTYPE_TEXTURE) + if (dst_resource->type == WINED3D_RTYPE_VOLUME_TEXTURE + || src_resource->type == WINED3D_RTYPE_VOLUME_TEXTURE) { I guess your intention is to avoid having a type == TEXTURE || type == CUBE_TEXTURE kind of construct, but technically you'd also have to check for WINED3D_RTYPE_BUFFER. I'd prefer whitelisting known good resource types.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWMOWUAAoJEN0/YqbEcdMwwIsP/3MU73JRdCfxlLTwi7XANeoB w43lxvtcF1N/ZqCsTaGcXB0cln121cDeg5mlSeT4AQMIgc0glOTIKDRRKQ4RMpeE YtXtc9uWp+2oqJ1oXJchCnYEfbdAlNUqqWrgOO1o/4YmknHTjLI4lR5Xore/YFlG pVT9pzrQzK/FFNkJV7mJaW1Vya2jtHxzGt1v/PiDYPjOUo6hODj7L1razouvf5wS xrZAU3SfnlrRZ+SyEWnSQehniN6CH0Nn1Gp7YsThIvSS8KH5kuAtfTY0UGtda/DU 8cb2jJZ3EevrQFIr+kC7Y0EDvMSdjf2dYo1eOc10AYjeF+4cYOTbo+v+n/wkPdy+ 2leDdfggxl8ynb1NzvqoBuZArhyj2lvEG3LBloNOWczAwR1dc/RXpUO84zpLPVLS H9KGyFx5atJUJHvqA8AexRTPAHJ6I8hI8mXEatQwbfGNLd6Erq/tfcKJzAB9SQeE XTE9GkGMP+D8bAp88AwTPDznVva3KxLpHlEK4KS6XPJZRw5JxvaxOz1zLilXNwLu GdCwauQlYTtxg+fJFKWw85udF/tvXw6nF+MkK4xrs37D08kf98GPXnFln1NPCLvd aPQutjmZlLehLcbk3GmFFEuRy2D8vt48nfCltfMIXe03sql+GiNK8SqnQ151+as2 u1oVePmmJt89kdM+hQk/ =gsHT -----END PGP SIGNATURE-----
On 28 October 2015 at 16:11, Stefan Dösinger <stefandoesinger(a)gmail.com> wrote:
Am 2015-10-28 um 15:31 schrieb Riccardo Bortolato:
- if (dst_resource->type != WINED3D_RTYPE_TEXTURE) + if (dst_resource->type == WINED3D_RTYPE_VOLUME_TEXTURE + || src_resource->type == WINED3D_RTYPE_VOLUME_TEXTURE) { I guess your intention is to avoid having a type == TEXTURE || type == CUBE_TEXTURE kind of construct, but technically you'd also have to check for WINED3D_RTYPE_BUFFER. I'd prefer whitelisting known good resource types.
The issue mostly exists because d3d10 doesn't have cube textures as such, but just generic 2D array textures. Ideally wined3d would be fixed to match that first, but I suppose you could also just map WINED3D_RTYPE_CUBE_TEXTURE to WINED3D_RTYPE_TEXTURE here.
participants (2)
-
Henri Verbeet -
Stefan Dösinger