Implement cl_khr_mipmap_image [2/n]

- Add mipmap handling for clEnqueueCopyImage
- Add mipmap handling for clEnqueueCopyImageToBuffer
- Add mipmap handling for clEnqueueCopyBufferToImage
- Fix typos

Change-Id: Ie1a23b1699135afa17fe11bcba3c1e8bdf9a3dd9
This commit is contained in:
Woloszyn, Wojciech
2018-03-21 14:35:26 +01:00
committed by sys_ocldev
parent c4c75e542e
commit ce2f1468b7
11 changed files with 384 additions and 6 deletions

View File

@@ -26,6 +26,7 @@
#include "runtime/command_stream/command_stream_receiver.h"
#include "runtime/helpers/surface_formats.h"
#include "runtime/helpers/kernel_commands.h"
#include "runtime/helpers/mipmap.h"
#include "runtime/mem_obj/buffer.h"
#include "runtime/mem_obj/image.h"
#include "runtime/memory_manager/surface.h"
@@ -61,6 +62,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBufferToImage(
dc.srcOffset = {srcOffset, 0, 0};
dc.dstOffset = dstOrigin;
dc.size = region;
if (dstImage->getImageDesc().num_mip_levels > 0) {
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, dstOrigin);
}
builder.buildDispatchInfos(di, dc);
enqueueHandler<CL_COMMAND_COPY_BUFFER_TO_IMAGE>(

View File

@@ -27,6 +27,7 @@
#include "runtime/command_stream/command_stream_receiver.h"
#include "runtime/helpers/kernel_commands.h"
#include "runtime/helpers/basic_math.h"
#include "runtime/helpers/mipmap.h"
#include "runtime/mem_obj/image.h"
#include "runtime/memory_manager/surface.h"
#include <algorithm>
@@ -61,6 +62,12 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyImage(
dc.srcOffset = srcOrigin;
dc.dstOffset = dstOrigin;
dc.size = region;
if (srcImage->getImageDesc().num_mip_levels > 0) {
dc.srcMipLevel = findMipLevel(srcImage->getImageDesc().image_type, srcOrigin);
}
if (dstImage->getImageDesc().num_mip_levels > 0) {
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, dstOrigin);
}
builder.buildDispatchInfos(di, dc);
enqueueHandler<CL_COMMAND_COPY_IMAGE>(

View File

@@ -26,6 +26,7 @@
#include "runtime/command_stream/command_stream_receiver.h"
#include "runtime/helpers/surface_formats.h"
#include "runtime/helpers/kernel_commands.h"
#include "runtime/helpers/mipmap.h"
#include "runtime/mem_obj/buffer.h"
#include "runtime/mem_obj/image.h"
#include "runtime/memory_manager/surface.h"
@@ -61,6 +62,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyImageToBuffer(
dc.srcOffset = srcOrigin;
dc.dstOffset = {dstOffset, 0, 0};
dc.size = region;
if (srcImage->getImageDesc().num_mip_levels > 0) {
dc.srcMipLevel = findMipLevel(srcImage->getImageDesc().image_type, srcOrigin);
}
builder.buildDispatchInfos(di, dc);
enqueueHandler<CL_COMMAND_COPY_IMAGE_TO_BUFFER>(