Advertisement
Guest User

Untitled

a guest
May 25th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 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->bind_flags & WINED3D_BIND_CONSTANT_BUFFER))
  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