Return error code for unsuported image arg in gen12lp

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
Maciej Plewka
2022-10-13 15:55:18 +00:00
committed by Compute-Runtime-Automation
parent 7195aa6f8e
commit bbc31e6aac
24 changed files with 625 additions and 129 deletions

View File

@@ -129,6 +129,8 @@ set(NEO_CORE_HELPERS
${CMAKE_CURRENT_SOURCE_DIR}/stdio.h
${CMAKE_CURRENT_SOURCE_DIR}/string.h
${CMAKE_CURRENT_SOURCE_DIR}/string_helpers.h
${CMAKE_CURRENT_SOURCE_DIR}/supported_media_surface_formats.cpp
${CMAKE_CURRENT_SOURCE_DIR}/supported_media_surface_formats.h
${CMAKE_CURRENT_SOURCE_DIR}/surface_format_info.h
${CMAKE_CURRENT_SOURCE_DIR}/timestamp_packet.cpp
${CMAKE_CURRENT_SOURCE_DIR}/timestamp_packet.h

View File

@@ -35,7 +35,7 @@ struct AllocationProperties;
struct EncodeSurfaceStateArgs;
struct RootDeviceEnvironment;
struct PipeControlArgs;
enum GFX3DSTATE_SURFACEFORMAT : unsigned short;
class HwHelper {
public:
static HwHelper &get(GFXCORE_FAMILY gfxCore);
@@ -162,6 +162,7 @@ class HwHelper {
virtual bool copyThroughLockedPtrEnabled() const = 0;
virtual uint32_t getAmountOfAllocationsToFill() const = 0;
virtual bool isChipsetUniqueUUIDSupported() const = 0;
virtual bool isSurfaceFormatSupportedForMediaBlockOperation(NEO::GFX3DSTATE_SURFACEFORMAT format) const = 0;
protected:
HwHelper() = default;
@@ -406,6 +407,7 @@ class HwHelperHw : public HwHelper {
bool copyThroughLockedPtrEnabled() const override;
uint32_t getAmountOfAllocationsToFill() const override;
bool isChipsetUniqueUUIDSupported() const override;
bool isSurfaceFormatSupportedForMediaBlockOperation(NEO::GFX3DSTATE_SURFACEFORMAT format) const override;
protected:
static const AuxTranslationMode defaultAuxTranslationMode;

View File

@@ -738,4 +738,8 @@ template <typename gfxProduct>
bool HwHelperHw<gfxProduct>::isChipsetUniqueUUIDSupported() const {
return false;
}
template <typename gfxProduct>
bool HwHelperHw<gfxProduct>::isSurfaceFormatSupportedForMediaBlockOperation(NEO::GFX3DSTATE_SURFACEFORMAT format) const {
return true;
}
} // namespace NEO

View File

@@ -0,0 +1,61 @@
/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/helpers/supported_media_surface_formats.h"
#include "shared/source/helpers/surface_format_info.h"
#include <algorithm>
#include <array>
namespace NEO {
constexpr std::array<NEO::GFX3DSTATE_SURFACEFORMAT, 42> supportedMediaSurfaceFormats = {NEO::GFX3DSTATE_SURFACEFORMAT_R16G16B16A16_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_B8G8R8A8_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R10G10B10A2_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8B8A8_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16G16_FLOAT,
NEO::GFX3DSTATE_SURFACEFORMAT_B10G10R10A2_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R11G11B10_FLOAT,
NEO::GFX3DSTATE_SURFACEFORMAT_R32_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R32_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R32_FLOAT,
NEO::GFX3DSTATE_SURFACEFORMAT_B5G6R5_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5A1_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_B4G4R4A4_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R8G8_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R16_SNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R16_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R16_FLOAT,
NEO::GFX3DSTATE_SURFACEFORMAT_A16_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_B5G5R5X1_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8_SNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_R8_SINT,
NEO::GFX3DSTATE_SURFACEFORMAT_R8_UINT,
NEO::GFX3DSTATE_SURFACEFORMAT_A8_UNORM,
NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_NORMAL,
NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUVY,
NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPUV,
NEO::GFX3DSTATE_SURFACEFORMAT_YCRCB_SWAPY,
NEO::GFX3DSTATE_SURFACEFORMAT_PACKED_422_16};
bool SupportedMediaFormatsHelper::isMediaFormatSupported(NEO::GFX3DSTATE_SURFACEFORMAT format) {
return std::find(NEO::supportedMediaSurfaceFormats.begin(), NEO::supportedMediaSurfaceFormats.end(), format) != NEO::supportedMediaSurfaceFormats.end();
}
} // namespace NEO

View File

@@ -0,0 +1,16 @@
/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
namespace NEO {
enum GFX3DSTATE_SURFACEFORMAT : unsigned short;
class SupportedMediaFormatsHelper {
public:
static bool isMediaFormatSupported(GFX3DSTATE_SURFACEFORMAT format);
};
} // namespace NEO