Signed-off-by: Edward O'Callaghan <funfunc...@folklore1984.net> --- src/gallium/state_trackers/clover/api/memory.cpp | 13 +++++++++---- src/gallium/state_trackers/clover/core/memory.cpp | 14 ++++++++++++++ src/gallium/state_trackers/clover/core/memory.hpp | 11 +++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/gallium/state_trackers/clover/api/memory.cpp b/src/gallium/state_trackers/clover/api/memory.cpp index 7aee417..9b3b70e 100644 --- a/src/gallium/state_trackers/clover/api/memory.cpp +++ b/src/gallium/state_trackers/clover/api/memory.cpp @@ -182,6 +182,15 @@ clCreateImage(cl_context d_ctx, cl_mem_flags d_flags, desc->image_width, desc->image_row_pitch, host_ptr); + case CL_MEM_OBJECT_IMAGE1D_ARRAY: + if (!desc->image_width) + throw error(CL_INVALID_IMAGE_SIZE); + + return new image1d_array(ctx, flags, format, + desc->image_width, + desc->image_array_size, desc->image_slice_pitch, + host_ptr); + case CL_MEM_OBJECT_IMAGE2D: if (!desc->image_width || !desc->image_height) throw error(CL_INVALID_IMAGE_SIZE); @@ -230,10 +239,6 @@ clCreateImage(cl_context d_ctx, cl_mem_flags d_flags, desc->image_depth, desc->image_row_pitch, desc->image_slice_pitch, host_ptr); - case CL_MEM_OBJECT_IMAGE1D_ARRAY: - // XXX - Not implemented. - throw error(CL_IMAGE_FORMAT_NOT_SUPPORTED); - default: throw error(CL_INVALID_IMAGE_DESCRIPTOR); } diff --git a/src/gallium/state_trackers/clover/core/memory.cpp b/src/gallium/state_trackers/clover/core/memory.cpp index 94b1273..517d53f 100644 --- a/src/gallium/state_trackers/clover/core/memory.cpp +++ b/src/gallium/state_trackers/clover/core/memory.cpp @@ -211,6 +211,20 @@ image1d_buffer::type() const { return CL_MEM_OBJECT_IMAGE1D_BUFFER; } +image1d_array::image1d_array(clover::context &ctx, cl_mem_flags flags, + const cl_image_format *format, + size_t width, + size_t array_size, size_t slice_pitch, + void *host_ptr) : + image(ctx, flags, format, width, 0, 1, + 0, slice_pitch, slice_pitch * array_size, host_ptr) { +} + +cl_mem_object_type +image1d_array::type() const { + return CL_MEM_OBJECT_IMAGE1D_ARRAY; +} + image2d::image2d(clover::context &ctx, cl_mem_flags flags, const cl_image_format *format, size_t width, size_t height, size_t row_pitch, diff --git a/src/gallium/state_trackers/clover/core/memory.hpp b/src/gallium/state_trackers/clover/core/memory.hpp index 1394fe6..a54db83 100644 --- a/src/gallium/state_trackers/clover/core/memory.hpp +++ b/src/gallium/state_trackers/clover/core/memory.hpp @@ -154,6 +154,17 @@ namespace clover { virtual cl_mem_object_type type() const; }; + class image1d_array : public image { + public: + image1d_array(clover::context &ctx, cl_mem_flags flags, + const cl_image_format *format, + size_t width, + size_t array_size, size_t slice_pitch, + void *host_ptr); + + virtual cl_mem_object_type type() const; + }; + class image2d : public image { public: image2d(clover::context &ctx, cl_mem_flags flags, -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev