mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
clover: Fix host access validation for sub-buffer creation
From CL 1.2 Section 5.2.1:
CL_INVALID_VALUE if buffer was created with CL_MEM_HOST_WRITE_ONLY and
flags specify CL_MEM_HOST_READ_ONLY , or if buffer was created with
CL_MEM_HOST_READ_ONLY and flags specify CL_MEM_HOST_WRITE_ONLY , or if
buffer was created with CL_MEM_HOST_NO_ACCESS and flags specify
CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY .
Fixes CL 1.2 CTS test/api get_buffer_info
v2: Correct host_access_flags check (Francisco)
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
c366f422f0
commit
354b12681b
1 changed files with 7 additions and 2 deletions
|
|
@ -57,8 +57,13 @@ namespace {
|
|||
parent.flags() & host_access_flags) |
|
||||
(parent.flags() & host_ptr_flags));
|
||||
|
||||
if (~flags & parent.flags() &
|
||||
((dev_access_flags & ~CL_MEM_READ_WRITE) | host_access_flags))
|
||||
if (~flags & parent.flags() & (dev_access_flags & ~CL_MEM_READ_WRITE))
|
||||
throw error(CL_INVALID_VALUE);
|
||||
|
||||
// Check if new host access flags cause a mismatch between
|
||||
// host-read/write-only.
|
||||
if (!(flags & CL_MEM_HOST_NO_ACCESS) &&
|
||||
(~flags & parent.flags() & host_access_flags))
|
||||
throw error(CL_INVALID_VALUE);
|
||||
|
||||
return flags;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue