mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 09:31:03 +00:00
svga: fix incompatible bind flags at buffer validation time
At buffer resource validation time, if the resource handle is not yet created and if the initial buffer bind flags and the tobind flags are incompatible, just use the tobind flags to create the resource handle. On the other hand, if the bind flags are compatible, we can combine the bind flags for the resource handle creation. Fixes piglit gl-3.1-buffer-bindings crash. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
1261b34cd5
commit
33a86acd78
@ -1003,9 +1003,14 @@ svga_buffer_handle(struct svga_context *svga, struct pipe_resource *buf,
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
if (!sbuf->bind_flags) {
|
||||
/* If there is no resource handle yet, then combine the buffer bind
|
||||
* flags and the tobind_flags if they are compatible.
|
||||
* If not, just use the tobind_flags for creating the resource handle.
|
||||
*/
|
||||
if (compatible_bind_flags(sbuf->bind_flags, tobind_flags))
|
||||
sbuf->bind_flags = sbuf->bind_flags | tobind_flags;
|
||||
else
|
||||
sbuf->bind_flags = tobind_flags;
|
||||
}
|
||||
|
||||
assert((sbuf->bind_flags & tobind_flags) == tobind_flags);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user