[PATCH 1/2] wined3d: Support WINED3D_RTYPE_BUFFER in wined3d_check_device_format().

Zebediah Figura z.figura12 at gmail.com
Thu Feb 11 20:33:29 CST 2021


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/wined3d/directx.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 600ad02a427..6296b833709 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1777,6 +1777,19 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d,
             gl_type = gl_type_end = WINED3D_GL_RES_TYPE_TEX_3D;
             break;
 
+        case WINED3D_RTYPE_BUFFER:
+            if (wined3d_format_is_typeless(format))
+            {
+                TRACE("Requested WINED3D_RTYPE_BUFFER, but format %s is typeless.\n", debug_d3dformat(check_format_id));
+                return WINED3DERR_NOTAVAILABLE;
+            }
+
+            allowed_usage = WINED3DUSAGE_DYNAMIC;
+            allowed_bind_flags = WINED3D_BIND_SHADER_RESOURCE
+                    | WINED3D_BIND_UNORDERED_ACCESS;
+            gl_type = gl_type_end = WINED3D_GL_RES_TYPE_BUFFER;
+            break;
+
         default:
             FIXME("Unhandled resource type %s.\n", debug_d3dresourcetype(resource_type));
             return WINED3DERR_NOTAVAILABLE;
-- 
2.20.1




More information about the wine-devel mailing list