Advertisement
Guest User

Untitled

a guest
May 25th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.58 KB | None | 0 0
  1. diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
  2. index 3f4552f2bb..c985f63ef8 100644
  3. --- a/dlls/wined3d/buffer.c
  4. +++ b/dlls/wined3d/buffer.c
  5. @@ -1417,16 +1417,31 @@ HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct
  6.          struct wined3d_buffer **buffer)
  7.  {
  8.      struct wined3d_buffer *object;
  9. +    unsigned int access;
  10. +    char *small_buffers_hack_env;
  11. +    BOOL small_buffers_hack_enabled = FALSE;
  12.      HRESULT hr;
  13.  
  14. +    if ((small_buffers_hack_env = getenv("SMALL_BUFFERS_HACK")) && *small_buffers_hack_env == '1')
  15. +    {
  16. +       small_buffers_hack_enabled = TRUE;
  17. +    }
  18. +
  19.      TRACE("device %p, desc %p, data %p, parent %p, parent_ops %p, buffer %p.\n",
  20.              device, desc, data, parent, parent_ops, buffer);
  21.  
  22.      if (!(object = heap_alloc_zero(sizeof(*object))))
  23.          return E_OUTOFMEMORY;
  24.  
  25. +    if (!small_buffers_hack_enabled || desc->byte_width > 1024 * 1024)
  26. +       access = desc->access;
  27. +    else {
  28. +        FIXME("Overriding buffer access flags. byte_width: %d flags: %#x buffer: %p.\n", desc->byte_width, desc->access, object);
  29. +        access = WINED3D_RESOURCE_ACCESS_GPU | WINED3D_RESOURCE_ACCESS_CPU | WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W;
  30. +    }
  31. +
  32.      if (FAILED(hr = buffer_init(object, device, desc->byte_width, desc->usage, WINED3DFMT_UNKNOWN,
  33. -            desc->access, desc->bind_flags, data, parent, parent_ops)))
  34. +            access, desc->bind_flags, data, parent, parent_ops)))
  35.      {
  36.          WARN("Failed to initialize buffer, hr %#x.\n", hr);
  37.          heap_free(object);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement