Module: wine Branch: master Commit: 09cafcc3b6eff3b046d3c08f64d9c1fb9ce54c47 URL: https://gitlab.winehq.org/wine/wine/-/commit/09cafcc3b6eff3b046d3c08f64d9c1f...
Author: Stefan Dösinger stefan@codeweavers.com Date: Wed Jan 4 11:16:14 2023 +0300
wined3d: Clamp the bound buffer range to the buffer size.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53671
---
dlls/wined3d/state.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index eb25f01130e..a6d0b174e31 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -4618,7 +4618,9 @@ static void state_cb(struct wined3d_context *context, const struct wined3d_state buffer = buffer_state->buffer; bo_gl = wined3d_bo_gl(buffer->buffer_object); GL_EXTCALL(glBindBufferRange(GL_UNIFORM_BUFFER, base + i, - bo_gl->id, bo_gl->b.buffer_offset + buffer_state->offset, buffer_state->size)); + bo_gl->id, bo_gl->b.buffer_offset + buffer_state->offset, + min(buffer_state->size, buffer->resource.size - buffer_state->offset))); + buffer->bo_user.valid = true; } checkGLcall("bind constant buffers");