mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Remove code.
Change-Id: I7e578ab0bc7e490520159bfaa4f8f193db40b23e Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
2a2b83f79f
commit
794fba189e
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@@ -1,5 +1,5 @@
|
||||
#!groovy
|
||||
dependenciesRevision='0dea8bf00d710a5d2da5d04eb5ae595d0df4ce47-1217'
|
||||
strategy='EQUAL'
|
||||
allowedCD=272
|
||||
allowedCD=276
|
||||
allowedF=4
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#include "unit_tests/fixtures/device_fixture.h"
|
||||
#include "unit_tests/helpers/debug_manager_state_restore.h"
|
||||
#include "unit_tests/helpers/hw_parse.h"
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
#include "unit_tests/mocks/mock_command_queue.h"
|
||||
#include "unit_tests/mocks/mock_graphics_allocation.h"
|
||||
#include "unit_tests/mocks/mock_kernel.h"
|
||||
@@ -1270,18 +1269,6 @@ TEST(DispatchWalker, calculateDispatchDim) {
|
||||
}
|
||||
}
|
||||
|
||||
HWTEST_F(DispatchWalkerTest, WhenCallingDefaultWaMethodsThenExpectNothing) {
|
||||
auto &cmdStream = pCmdQ->getCS(0);
|
||||
MockKernel kernel(program.get(), kernelInfo, *pDevice);
|
||||
EXPECT_EQ(CL_SUCCESS, kernel.initialize());
|
||||
|
||||
GpgpuWalkerHelper<GENX>::applyWADisableLSQCROPERFforOCL(&cmdStream, kernel, false);
|
||||
|
||||
size_t expectedSize = 0;
|
||||
size_t actualSize = GpgpuWalkerHelper<GENX>::getSizeForWADisableLSQCROPERFforOCL(&kernel);
|
||||
EXPECT_EQ(expectedSize, actualSize);
|
||||
}
|
||||
|
||||
HWTEST_F(DispatchWalkerTest, givenKernelWhenAuxTranslationRequiredThenPipeControlWithStallAndDCFlushAdded) {
|
||||
MockKernel kernel(program.get(), kernelInfo, *pDevice);
|
||||
kernelInfo.workloadInfo.workDimOffset = 0;
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "runtime/platform/platform.h"
|
||||
#include "unit_tests/helpers/debug_manager_state_restore.h"
|
||||
#include "unit_tests/helpers/variable_backup.h"
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
#include "unit_tests/mocks/mock_device.h"
|
||||
#include "unit_tests/mocks/mock_gmm.h"
|
||||
#include "unit_tests/mocks/mock_graphics_allocation.h"
|
||||
@@ -744,39 +743,4 @@ TEST(GmmHelperTest, whenGmmHelperIsInitializedThenClientContextIsSet) {
|
||||
EXPECT_NE(nullptr, GmmHelper::getClientContext()->getHandle());
|
||||
}
|
||||
|
||||
struct GmmQueryInfoWithoutYTilingTest : public ::testing::Test {
|
||||
GmmQueryInfoWithoutYTilingTest() : enabledYTilingBackup(&GENX::enabledYTiling, false),
|
||||
renderCoreFamilyBackup(const_cast<GFXCORE_FAMILY *>(&platformDevices[0]->pPlatform->eRenderCoreFamily), IGFX_UNKNOWN_CORE) {}
|
||||
|
||||
VariableBackup<bool> enabledYTilingBackup;
|
||||
VariableBackup<GFXCORE_FAMILY> renderCoreFamilyBackup;
|
||||
};
|
||||
TEST_F(GmmQueryInfoWithoutYTilingTest, givenPlatformThatDoesntSupportYTilingWhenQueryImageParamsForTilableImageThenTilingIsDisabled) {
|
||||
|
||||
cl_image_desc imgDesc{};
|
||||
imgDesc.image_type = CL_MEM_OBJECT_IMAGE3D;
|
||||
imgDesc.image_width = 17;
|
||||
imgDesc.image_height = 17;
|
||||
imgDesc.image_depth = 17;
|
||||
|
||||
auto imgInfo = MockGmm::initImgInfo(imgDesc, 0, nullptr);
|
||||
|
||||
auto queryGmm = MockGmm::queryImgParams(imgInfo);
|
||||
|
||||
EXPECT_EQ(queryGmm->resourceParams.Flags.Info.Linear, 0u);
|
||||
EXPECT_EQ(queryGmm->resourceParams.Flags.Info.TiledY, 0u);
|
||||
}
|
||||
TEST_F(GmmQueryInfoWithoutYTilingTest, givenPlatformThatDoesntSupportYTilingWhenQueryImageParamsForUntilableImageThenLinearPropertyRemains) {
|
||||
|
||||
cl_image_desc imgDesc{};
|
||||
imgDesc.image_type = CL_MEM_OBJECT_IMAGE1D;
|
||||
imgDesc.image_width = 17;
|
||||
|
||||
auto imgInfo = MockGmm::initImgInfo(imgDesc, 0, nullptr);
|
||||
|
||||
auto queryGmm = MockGmm::queryImgParams(imgInfo);
|
||||
|
||||
EXPECT_EQ(queryGmm->resourceParams.Flags.Info.Linear, 1u);
|
||||
EXPECT_EQ(queryGmm->resourceParams.Flags.Info.TiledY, 0u);
|
||||
}
|
||||
} // namespace NEO
|
||||
|
||||
@@ -35,8 +35,6 @@ set(IGDRCL_SRCS_LIB_ULT
|
||||
${IGDRCL_SOURCE_DIR}/unit_tests/libult/source_level_debugger_library.h
|
||||
${IGDRCL_SOURCE_DIR}/unit_tests/program/evaluate_unhandled_token_ult.cpp
|
||||
${IGDRCL_SOURCE_DIR}/unit_tests/utilities/debug_settings_reader_creator.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_gfx_family.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mock_gfx_family.cpp
|
||||
)
|
||||
|
||||
set(IGDRCL_SRCS_LIB_ULT_WINDOWS
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017-2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
|
||||
#include "runtime/command_queue/gpgpu_walker.inl"
|
||||
#include "runtime/command_queue/gpgpu_walker_base.inl"
|
||||
#include "runtime/command_stream/preemption.inl"
|
||||
#include "runtime/device_queue/device_queue_hw.h"
|
||||
#include "runtime/device_queue/device_queue_hw.inl"
|
||||
#include "runtime/gen_common/aub_mapper.h"
|
||||
#include "runtime/helpers/hw_helper_common.inl"
|
||||
#include "runtime/helpers/kernel_commands.inl"
|
||||
#include "runtime/helpers/kernel_commands_base.inl"
|
||||
#include "runtime/helpers/preamble.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
static AubMemDump::LrcaHelperRcs rcs(0x000000);
|
||||
static AubMemDump::LrcaHelperBcs bcs(0x020000);
|
||||
static AubMemDump::LrcaHelperVcs vcs(0x010000);
|
||||
static AubMemDump::LrcaHelperVecs vecs(0x018000);
|
||||
|
||||
const AubMemDump::LrcaHelper *AUBFamilyMapper<GENX>::csTraits[aub_stream::NUM_ENGINES] = {
|
||||
&rcs,
|
||||
&bcs,
|
||||
&vcs,
|
||||
&vecs};
|
||||
|
||||
const MMIOList AUBFamilyMapper<GENX>::globalMMIO;
|
||||
|
||||
bool (*GENX::isSimulationFcn)(unsigned short) = nullptr;
|
||||
|
||||
GENX::GPGPU_WALKER GENX::cmdInitGpgpuWalker = GENX::GPGPU_WALKER::sInit();
|
||||
GENX::INTERFACE_DESCRIPTOR_DATA GENX::cmdInitInterfaceDescriptorData = GENX::INTERFACE_DESCRIPTOR_DATA::sInit();
|
||||
GENX::MEDIA_STATE_FLUSH GENX::cmdInitMediaStateFlush = GENX::MEDIA_STATE_FLUSH::sInit();
|
||||
GENX::MEDIA_INTERFACE_DESCRIPTOR_LOAD GENX::cmdInitMediaInterfaceDescriptorLoad = GENX::MEDIA_INTERFACE_DESCRIPTOR_LOAD::sInit();
|
||||
GENX::MI_SEMAPHORE_WAIT GENX::cmdInitMiSemaphoreWait = GENX::MI_SEMAPHORE_WAIT::sInit();
|
||||
GENX::RENDER_SURFACE_STATE GENX::cmdInitRenderSurfaceState = GENX::RENDER_SURFACE_STATE::sInit();
|
||||
GENX::MI_LOAD_REGISTER_IMM GENX::cmdInitLoadRegisterImm = GENX::MI_LOAD_REGISTER_IMM::sInit();
|
||||
GENX::MI_LOAD_REGISTER_REG GENX::cmdInitLoadRegisterReg = GENX::MI_LOAD_REGISTER_REG::sInit();
|
||||
GENX::MI_LOAD_REGISTER_MEM GENX::cmdInitLoadRegisterMem = GENX::MI_LOAD_REGISTER_MEM::sInit();
|
||||
GENX::MI_STORE_DATA_IMM GENX::cmdInitStoreDataImm = GENX::MI_STORE_DATA_IMM::sInit();
|
||||
GENX::MI_STORE_REGISTER_MEM GENX::cmdInitStoreRegisterMem = GENX::MI_STORE_REGISTER_MEM::sInit();
|
||||
GENX::MI_NOOP GENX::cmdInitNoop = GENX::MI_NOOP::sInit();
|
||||
GENX::MI_BATCH_BUFFER_START GENX::cmdInitBatchBufferStart = GENX::MI_BATCH_BUFFER_START::sInit();
|
||||
GENX::MI_BATCH_BUFFER_END GENX::cmdInitBatchBufferEnd = GENX::MI_BATCH_BUFFER_END::sInit();
|
||||
GENX::MI_REPORT_PERF_COUNT GENX::cmdInitReportPerfCount = GENX::MI_REPORT_PERF_COUNT::sInit();
|
||||
GENX::MI_ATOMIC GENX::cmdInitAtomic = GENX::MI_ATOMIC::sInit();
|
||||
GENX::PIPELINE_SELECT GENX::cmdInitPipelineSelect = GENX::PIPELINE_SELECT::sInit();
|
||||
GENX::MI_ARB_CHECK GENX::cmdInitArbCheck = GENX::MI_ARB_CHECK::sInit();
|
||||
GENX::MEDIA_VFE_STATE GENX::cmdInitMediaVfeState = GENX::MEDIA_VFE_STATE::sInit();
|
||||
GENX::STATE_BASE_ADDRESS GENX::cmdInitStateBaseAddress = GENX::STATE_BASE_ADDRESS::sInit();
|
||||
GENX::MEDIA_SURFACE_STATE GENX::cmdInitMediaSurfaceState = GENX::MEDIA_SURFACE_STATE::sInit();
|
||||
GENX::SAMPLER_STATE GENX::cmdInitSamplerState = GENX::SAMPLER_STATE::sInit();
|
||||
GENX::GPGPU_CSR_BASE_ADDRESS GENX::cmdInitGpgpuCsrBaseAddress = GENX::GPGPU_CSR_BASE_ADDRESS::sInit();
|
||||
GENX::STATE_SIP GENX::cmdInitStateSip = GENX::STATE_SIP::sInit();
|
||||
GENX::BINDING_TABLE_STATE GENX::cmdInitBindingTableState = GENX::BINDING_TABLE_STATE::sInit();
|
||||
GENX::MI_USER_INTERRUPT GENX::cmdInitUserInterrupt = GENX::MI_USER_INTERRUPT::sInit();
|
||||
bool GENX::enabledYTiling = true;
|
||||
|
||||
template <>
|
||||
size_t HwHelperHw<GENX>::getMaxBarrierRegisterPerSlice() const {
|
||||
return 32;
|
||||
}
|
||||
|
||||
template <>
|
||||
void HwHelperHw<GENX>::setCapabilityCoherencyFlag(const HardwareInfo *pHwInfo, bool &coherencyFlag) {
|
||||
coherencyFlag = (pHwInfo->pPlatform->usDeviceID != 20);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool HwHelperHw<GENX>::setupPreemptionRegisters(HardwareInfo *pHwInfo, bool enable) {
|
||||
pHwInfo->capabilityTable.whitelistedRegisters.csChicken1_0x2580 = enable;
|
||||
return enable;
|
||||
}
|
||||
|
||||
template <>
|
||||
const AubMemDump::LrcaHelper &HwHelperHw<GENX>::getCsTraits(aub_stream::EngineType engineType) const {
|
||||
return *AUBFamilyMapper<GENX>::csTraits[engineType];
|
||||
}
|
||||
|
||||
template <>
|
||||
bool HwHelperHw<GENX>::supportsYTiling() const {
|
||||
return GENX::enabledYTiling;
|
||||
}
|
||||
|
||||
template class HwHelperHw<GENX>;
|
||||
|
||||
struct hw_helper_static_init {
|
||||
hw_helper_static_init() {
|
||||
hwHelperFactory[IGFX_UNKNOWN_CORE] = &HwHelperHw<GENX>::get();
|
||||
}
|
||||
};
|
||||
|
||||
hw_helper_static_init si;
|
||||
|
||||
template class GpgpuWalkerHelper<GENX>;
|
||||
|
||||
template <>
|
||||
bool KernelCommandsHelper<GENX>::isPipeControlWArequired() {
|
||||
return false;
|
||||
}
|
||||
|
||||
template struct KernelCommandsHelper<GENX>;
|
||||
|
||||
template <>
|
||||
size_t PreemptionHelper::getRequiredCmdStreamSize<GENX>(PreemptionMode newPreemptionMode, PreemptionMode oldPreemptionMode) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
void PreemptionHelper::programCmdStream<GENX>(LinearStream &cmdStream, PreemptionMode newPreemptionMode, PreemptionMode oldPreemptionMode,
|
||||
GraphicsAllocation *preemptionCsr, Device &device) {
|
||||
}
|
||||
|
||||
template <>
|
||||
size_t PreemptionHelper::getRequiredPreambleSize<GENX>(const Device &device) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
size_t PreemptionHelper::getRequiredStateSipCmdSize<GENX>(const Device &device) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template <>
|
||||
void PreemptionHelper::programStateSip<GENX>(LinearStream &preambleCmdStream, Device &device) {
|
||||
}
|
||||
|
||||
template <>
|
||||
size_t PreemptionHelper::getPreemptionWaCsSize<GENX>(const Device &device) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
template void PreemptionHelper::programInterfaceDescriptorDataPreemption<GENX>(INTERFACE_DESCRIPTOR_DATA<GENX> *idd, PreemptionMode preemptionMode);
|
||||
|
||||
template <>
|
||||
size_t DeviceQueueHw<GENX>::getWaCommandsSize() {
|
||||
return (size_t)0;
|
||||
}
|
||||
|
||||
template <>
|
||||
void DeviceQueueHw<GENX>::addArbCheckCmdWa() {
|
||||
}
|
||||
|
||||
template <>
|
||||
void DeviceQueueHw<GENX>::addMiAtomicCmdWa(uint64_t atomicOpPlaceholder) {
|
||||
}
|
||||
|
||||
template <>
|
||||
void DeviceQueueHw<GENX>::addLriCmdWa(bool setArbCheck) {
|
||||
}
|
||||
|
||||
template <>
|
||||
void DeviceQueueHw<GENX>::addPipeControlCmdWa(bool isNoopCmd) {
|
||||
}
|
||||
|
||||
template <>
|
||||
void DeviceQueueHw<GENX>::addProfilingEndCmds(uint64_t timestampAddress) {
|
||||
}
|
||||
|
||||
template class DeviceQueueHw<GENX>;
|
||||
|
||||
template <>
|
||||
void PreambleHelper<GENX>::addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo) {
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t PreambleHelper<GENX>::getL3Config(const HardwareInfo &hwInfo, bool useSLM) {
|
||||
uint32_t l3Config = 0;
|
||||
return l3Config;
|
||||
}
|
||||
|
||||
template <>
|
||||
void PreambleHelper<GENX>::programPipelineSelect(LinearStream *pCommandStream, const DispatchFlags &dispatchFlags) {
|
||||
}
|
||||
|
||||
template <>
|
||||
struct L3CNTLRegisterOffset<GENX> {
|
||||
static const uint32_t registerOffset = 0x7034;
|
||||
};
|
||||
|
||||
template struct PreambleHelper<GENX>;
|
||||
|
||||
} // namespace NEO
|
||||
@@ -1,551 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "runtime/gen_common/aub_mapper_base.h"
|
||||
#include "runtime/helpers/hw_helper.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
extern HwHelper *hwHelperFactory[IGFX_MAX_CORE];
|
||||
|
||||
struct GENX {
|
||||
static bool (*isSimulationFcn)(unsigned short);
|
||||
static bool enabledYTiling;
|
||||
typedef struct tagINTERFACE_DESCRIPTOR_DATA {
|
||||
typedef enum tagDENORM_MODE {
|
||||
DENORM_MODE_FTZ = 0x0,
|
||||
DENORM_MODE_SETBYKERNEL = 0x1,
|
||||
} DENORM_MODE;
|
||||
typedef enum tagSAMPLERSTATEPOINTER {
|
||||
SAMPLERSTATEPOINTER_BIT_SHIFT = 0x5,
|
||||
SAMPLERSTATEPOINTER_ALIGN_SIZE = 0x20,
|
||||
} SAMPLERSTATEPOINTER;
|
||||
typedef enum tagSAMPLER_COUNT {
|
||||
SAMPLER_COUNT_NO_SAMPLERS_USED = 0x0,
|
||||
SAMPLER_COUNT_BETWEEN_1_AND_4_SAMPLERS_USED = 0x1,
|
||||
SAMPLER_COUNT_BETWEEN_5_AND_8_SAMPLERS_USED = 0x2,
|
||||
SAMPLER_COUNT_BETWEEN_9_AND_12_SAMPLERS_USED = 0x3,
|
||||
SAMPLER_COUNT_BETWEEN_13_AND_16_SAMPLERS_USED = 0x4,
|
||||
} SAMPLER_COUNT;
|
||||
typedef enum tagSHARED_LOCAL_MEMORY_SIZE {
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_0K = 0x0,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_1K = 0x1,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_2K = 0x2,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_4K = 0x3,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_8K = 0x4,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_16K = 0x5,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_32K = 0x6,
|
||||
SHARED_LOCAL_MEMORY_SIZE_ENCODES_64K = 0x7,
|
||||
} SHARED_LOCAL_MEMORY_SIZE;
|
||||
typedef enum tagBINDINGTABLEPOINTER {
|
||||
BINDINGTABLEPOINTER_BIT_SHIFT = 0x5,
|
||||
BINDINGTABLEPOINTER_ALIGN_SIZE = 0x20,
|
||||
} BINDINGTABLEPOINTER;
|
||||
static tagINTERFACE_DESCRIPTOR_DATA sInit(void) {
|
||||
INTERFACE_DESCRIPTOR_DATA state;
|
||||
return state;
|
||||
}
|
||||
inline void setKernelStartPointerHigh(const uint32_t value) {
|
||||
}
|
||||
inline void setKernelStartPointer(const uint64_t value) {
|
||||
}
|
||||
inline void setNumberOfThreadsInGpgpuThreadGroup(const uint32_t value) {
|
||||
}
|
||||
inline void setCrossThreadConstantDataReadLength(const uint32_t value) {
|
||||
}
|
||||
inline void setDenormMode(const DENORM_MODE value) {
|
||||
}
|
||||
inline void setConstantIndirectUrbEntryReadLength(const uint32_t value) {
|
||||
}
|
||||
inline void setBindingTablePointer(const uint64_t value) {
|
||||
}
|
||||
inline void setSamplerStatePointer(const uint64_t value) {
|
||||
}
|
||||
inline void setSamplerCount(const SAMPLER_COUNT value) {
|
||||
}
|
||||
inline void setSharedLocalMemorySize(const SHARED_LOCAL_MEMORY_SIZE value) {
|
||||
}
|
||||
inline void setBarrierEnable(const bool value) {
|
||||
}
|
||||
inline void setBindingTableEntryCount(const uint32_t value) {
|
||||
}
|
||||
} INTERFACE_DESCRIPTOR_DATA;
|
||||
|
||||
typedef struct tagBINDING_TABLE_STATE {
|
||||
static tagBINDING_TABLE_STATE sInit(void) {
|
||||
BINDING_TABLE_STATE state;
|
||||
return state;
|
||||
}
|
||||
inline void init(void) {
|
||||
}
|
||||
inline uint32_t getSurfaceStatePointer(void) const {
|
||||
return 0u;
|
||||
}
|
||||
inline void setSurfaceStatePointer(const uint64_t value) {
|
||||
}
|
||||
inline uint32_t getRawData(const uint32_t index) {
|
||||
return 0;
|
||||
}
|
||||
typedef enum tagSURFACESTATEPOINTER {
|
||||
SURFACESTATEPOINTER_BIT_SHIFT = 0x6,
|
||||
SURFACESTATEPOINTER_ALIGN_SIZE = 0x40,
|
||||
} SURFACESTATEPOINTER;
|
||||
} BINDING_TABLE_STATE;
|
||||
|
||||
typedef struct tagGPGPU_WALKER {
|
||||
typedef enum tagSIMD_SIZE {
|
||||
SIMD_SIZE_SIMD8 = 0x0,
|
||||
SIMD_SIZE_SIMD16 = 0x1,
|
||||
SIMD_SIZE_SIMD32 = 0x2,
|
||||
} SIMD_SIZE;
|
||||
typedef enum tagINDIRECTDATASTARTADDRESS {
|
||||
INDIRECTDATASTARTADDRESS_BIT_SHIFT = 0x6,
|
||||
INDIRECTDATASTARTADDRESS_ALIGN_SIZE = 0x40,
|
||||
} INDIRECTDATASTARTADDRESS;
|
||||
static tagGPGPU_WALKER sInit(void) {
|
||||
GPGPU_WALKER state;
|
||||
return state;
|
||||
}
|
||||
inline void setThreadWidthCounterMaximum(const uint32_t value) {
|
||||
}
|
||||
inline void setThreadGroupIdXDimension(const uint32_t value) {
|
||||
}
|
||||
inline void setThreadGroupIdYDimension(const uint32_t value) {
|
||||
}
|
||||
inline void setThreadGroupIdZDimension(const uint32_t value) {
|
||||
}
|
||||
inline void setRightExecutionMask(const uint32_t value) {
|
||||
}
|
||||
inline void setBottomExecutionMask(const uint32_t value) {
|
||||
}
|
||||
inline void setSimdSize(const SIMD_SIZE value) {
|
||||
}
|
||||
inline void setThreadGroupIdStartingX(const uint32_t value) {
|
||||
}
|
||||
inline void setThreadGroupIdStartingY(const uint32_t value) {
|
||||
}
|
||||
inline void setThreadGroupIdStartingResumeZ(const uint32_t value) {
|
||||
}
|
||||
inline void setIndirectDataStartAddress(const uint32_t value) {
|
||||
}
|
||||
inline void setInterfaceDescriptorOffset(const uint32_t value) {
|
||||
}
|
||||
inline void setIndirectDataLength(const uint32_t value) {
|
||||
}
|
||||
} GPGPU_WALKER;
|
||||
|
||||
typedef struct tagPIPE_CONTROL {
|
||||
typedef enum tagPOST_SYNC_OPERATION {
|
||||
POST_SYNC_OPERATION_NO_WRITE = 0x0,
|
||||
POST_SYNC_OPERATION_WRITE_IMMEDIATE_DATA = 0x1,
|
||||
POST_SYNC_OPERATION_WRITE_PS_DEPTH_COUNT = 0x2,
|
||||
POST_SYNC_OPERATION_WRITE_TIMESTAMP = 0x3,
|
||||
} POST_SYNC_OPERATION;
|
||||
static tagPIPE_CONTROL sInit(void) {
|
||||
PIPE_CONTROL state;
|
||||
return state;
|
||||
}
|
||||
inline void setCommandStreamerStallEnable(const uint32_t value) {
|
||||
}
|
||||
inline void setDcFlushEnable(const bool value) {
|
||||
}
|
||||
inline void setStateCacheInvalidationEnable(const bool value) {
|
||||
}
|
||||
inline void setPipeControlFlushEnable(const bool value) {
|
||||
}
|
||||
inline void setTextureCacheInvalidationEnable(const bool value) {
|
||||
}
|
||||
inline void setPostSyncOperation(const POST_SYNC_OPERATION value) {
|
||||
}
|
||||
inline void setAddress(const uint32_t value) {
|
||||
}
|
||||
inline void setAddressHigh(const uint32_t value) {
|
||||
}
|
||||
inline void setImmediateData(const uint64_t value) {
|
||||
}
|
||||
inline void setGenericMediaStateClear(const bool value) {
|
||||
}
|
||||
inline void setRenderTargetCacheFlushEnable(const bool value) {
|
||||
}
|
||||
inline void setInstructionCacheInvalidateEnable(const bool value) {
|
||||
}
|
||||
inline void setVfCacheInvalidationEnable(const bool value) {
|
||||
}
|
||||
inline void setConstantCacheInvalidationEnable(const bool value) {
|
||||
}
|
||||
} PIPE_CONTROL;
|
||||
|
||||
typedef struct tagMI_LOAD_REGISTER_IMM {
|
||||
static tagMI_LOAD_REGISTER_IMM sInit(void) {
|
||||
MI_LOAD_REGISTER_IMM state;
|
||||
return state;
|
||||
}
|
||||
inline void setRegisterOffset(const uint32_t value) {
|
||||
}
|
||||
inline void setDataDword(const uint32_t value) {
|
||||
}
|
||||
} MI_LOAD_REGISTER_IMM;
|
||||
|
||||
typedef struct tagMI_LOAD_REGISTER_REG {
|
||||
static tagMI_LOAD_REGISTER_REG sInit(void) {
|
||||
MI_LOAD_REGISTER_REG state;
|
||||
return state;
|
||||
}
|
||||
inline void setSourceRegisterAddress(const uint32_t value) {
|
||||
}
|
||||
inline void setDestinationRegisterAddress(const uint32_t value) {
|
||||
}
|
||||
} MI_LOAD_REGISTER_REG;
|
||||
|
||||
typedef struct tagMI_MATH {
|
||||
union _DW0 {
|
||||
struct _BitField {
|
||||
uint32_t DwordLength : BITFIELD_RANGE(0, 5);
|
||||
uint32_t Reserved : BITFIELD_RANGE(6, 22);
|
||||
uint32_t InstructionOpcode : BITFIELD_RANGE(23, 28);
|
||||
uint32_t InstructionType : BITFIELD_RANGE(29, 31);
|
||||
} BitField;
|
||||
uint32_t Value;
|
||||
} DW0;
|
||||
typedef enum tagMI_COMMAND_OPCODE {
|
||||
MI_COMMAND_OPCODE_MI_MATH = 0x0,
|
||||
} MI_COMMAND_OPCODE;
|
||||
typedef enum tagCOMMAND_TYPE {
|
||||
COMMAND_TYPE_MI_COMMAND = 0x0,
|
||||
} COMMAND_TYPE;
|
||||
} MI_MATH;
|
||||
|
||||
typedef struct tagMI_MATH_ALU_INST_INLINE {
|
||||
union _DW0 {
|
||||
struct _BitField {
|
||||
uint32_t Operand2 : BITFIELD_RANGE(0, 9);
|
||||
uint32_t Operand1 : BITFIELD_RANGE(10, 19);
|
||||
uint32_t ALUOpcode : BITFIELD_RANGE(20, 31);
|
||||
} BitField;
|
||||
uint32_t Value;
|
||||
} DW0;
|
||||
} MI_MATH_ALU_INST_INLINE;
|
||||
|
||||
typedef struct tagMI_COMMAND_OPCODE_MI_MATH {
|
||||
} MI_COMMAND_OPCODE_MI_MATH;
|
||||
|
||||
typedef struct tagMI_STORE_REGISTER_MEM {
|
||||
static tagMI_STORE_REGISTER_MEM sInit(void) {
|
||||
MI_STORE_REGISTER_MEM state;
|
||||
return state;
|
||||
}
|
||||
inline void setRegisterAddress(const uint32_t value) {
|
||||
}
|
||||
inline void setMemoryAddress(const uint64_t value) {
|
||||
}
|
||||
} MI_STORE_REGISTER_MEM;
|
||||
|
||||
typedef struct tagMI_REPORT_PERF_COUNT {
|
||||
static tagMI_REPORT_PERF_COUNT sInit(void) {
|
||||
MI_REPORT_PERF_COUNT state;
|
||||
return state;
|
||||
}
|
||||
inline void setReportId(const uint32_t value) {
|
||||
}
|
||||
inline void setMemoryAddress(const uint64_t value) {
|
||||
}
|
||||
} MI_REPORT_PERF_COUNT;
|
||||
|
||||
typedef struct tagMI_BATCH_BUFFER_START {
|
||||
typedef enum tagSECOND_LEVEL_BATCH_BUFFER {
|
||||
SECOND_LEVEL_BATCH_BUFFER_FIRST_LEVEL_BATCH = 0x0,
|
||||
SECOND_LEVEL_BATCH_BUFFER_SECOND_LEVEL_BATCH = 0x1,
|
||||
} SECOND_LEVEL_BATCH_BUFFER;
|
||||
static tagMI_BATCH_BUFFER_START sInit(void) {
|
||||
MI_BATCH_BUFFER_START state;
|
||||
return state;
|
||||
}
|
||||
inline void setSecondLevelBatchBuffer(const SECOND_LEVEL_BATCH_BUFFER value) {
|
||||
}
|
||||
inline void setBatchBufferStartAddressGraphicsaddress472(const uint64_t value) {
|
||||
}
|
||||
} MI_BATCH_BUFFER_START;
|
||||
|
||||
typedef struct tagMEDIA_STATE_FLUSH {
|
||||
static tagMEDIA_STATE_FLUSH sInit(void) {
|
||||
MEDIA_STATE_FLUSH state;
|
||||
return state;
|
||||
}
|
||||
inline void setInterfaceDescriptorOffset(const uint32_t value) {
|
||||
}
|
||||
} MEDIA_STATE_FLUSH;
|
||||
|
||||
typedef struct tagMEDIA_INTERFACE_DESCRIPTOR_LOAD {
|
||||
static tagMEDIA_INTERFACE_DESCRIPTOR_LOAD sInit(void) {
|
||||
MEDIA_INTERFACE_DESCRIPTOR_LOAD state;
|
||||
return state;
|
||||
}
|
||||
inline void setInterfaceDescriptorDataStartAddress(const uint32_t value) {
|
||||
}
|
||||
inline void setInterfaceDescriptorTotalLength(const uint32_t value) {
|
||||
}
|
||||
} MEDIA_INTERFACE_DESCRIPTOR_LOAD;
|
||||
|
||||
typedef struct tagMI_BATCH_BUFFER_END {
|
||||
static tagMI_BATCH_BUFFER_END sInit(void) {
|
||||
MI_BATCH_BUFFER_END state;
|
||||
return state;
|
||||
}
|
||||
} MI_BATCH_BUFFER_END;
|
||||
|
||||
typedef struct tagRENDER_SURFACE_STATE {
|
||||
typedef enum tagSURFACE_VERTICAL_ALIGNMENT {
|
||||
SURFACE_VERTICAL_ALIGNMENT_VALIGN_4 = 0x1,
|
||||
} SURFACE_VERTICAL_ALIGNMENT;
|
||||
typedef enum tagSURFACE_HORIZONTAL_ALIGNMENT {
|
||||
SURFACE_HORIZONTAL_ALIGNMENT_HALIGN_4 = 0x1,
|
||||
} SURFACE_HORIZONTAL_ALIGNMENT;
|
||||
typedef enum tagTILE_MODE {
|
||||
TILE_MODE_LINEAR = 0x0,
|
||||
} TILE_MODE;
|
||||
typedef enum tagSURFACE_TYPE {
|
||||
SURFACE_TYPE_SURFTYPE_BUFFER = 0x4,
|
||||
SURFACE_TYPE_SURFTYPE_NULL = 0x7
|
||||
} SURFACE_TYPE;
|
||||
typedef enum tagSURFACE_FORMAT {
|
||||
SURFACE_FORMAT_RAW = 0x1ff,
|
||||
} SURFACE_FORMAT;
|
||||
typedef enum tagAUXILIARY_SURFACE_MODE {
|
||||
AUXILIARY_SURFACE_MODE_AUX_NONE = 0x0,
|
||||
AUXILIARY_SURFACE_MODE_AUX_CCS_E = 0x5,
|
||||
} AUXILIARY_SURFACE_MODE;
|
||||
typedef enum tagCOHERENCY_TYPE {
|
||||
COHERENCY_TYPE_GPU_COHERENT = 0x0,
|
||||
COHERENCY_TYPE_IA_COHERENT = 0x1,
|
||||
} COHERENCY_TYPE;
|
||||
static tagRENDER_SURFACE_STATE sInit(void) {
|
||||
RENDER_SURFACE_STATE state;
|
||||
return state;
|
||||
}
|
||||
inline void setWidth(const uint32_t value) {
|
||||
}
|
||||
inline void setHeight(const uint32_t value) {
|
||||
}
|
||||
inline void setDepth(const uint32_t value) {
|
||||
}
|
||||
inline void setSurfacePitch(const uint32_t value) {
|
||||
}
|
||||
inline void setSurfaceType(const SURFACE_TYPE value) {
|
||||
}
|
||||
inline void setSurfaceFormat(const SURFACE_FORMAT value) {
|
||||
}
|
||||
inline void setSurfaceVerticalAlignment(const SURFACE_VERTICAL_ALIGNMENT value) {
|
||||
}
|
||||
inline void setSurfaceHorizontalAlignment(const SURFACE_HORIZONTAL_ALIGNMENT value) {
|
||||
}
|
||||
inline void setTileMode(const TILE_MODE value) {
|
||||
}
|
||||
inline void setVerticalLineStride(const uint32_t value) {
|
||||
}
|
||||
inline void setVerticalLineStrideOffset(const uint32_t value) {
|
||||
}
|
||||
inline void setMemoryObjectControlState(const uint32_t value) {
|
||||
}
|
||||
inline void setSurfaceBaseAddress(const uint64_t value) {
|
||||
}
|
||||
inline void setCoherencyType(const COHERENCY_TYPE value) {
|
||||
}
|
||||
inline void setAuxiliarySurfaceMode(const AUXILIARY_SURFACE_MODE value) {
|
||||
}
|
||||
} RENDER_SURFACE_STATE;
|
||||
|
||||
typedef struct tagMEDIA_VFE_STATE {
|
||||
static tagMEDIA_VFE_STATE sInit(void) {
|
||||
MEDIA_VFE_STATE state;
|
||||
return state;
|
||||
}
|
||||
inline void setMaximumNumberOfThreads(const uint32_t value) {
|
||||
}
|
||||
inline void setNumberOfUrbEntries(const uint32_t value) {
|
||||
}
|
||||
inline void setUrbEntryAllocationSize(const uint32_t value) {
|
||||
}
|
||||
inline void setPerThreadScratchSpace(const uint32_t value) {
|
||||
}
|
||||
inline void setStackSize(const uint32_t value) {
|
||||
}
|
||||
inline void setScratchSpaceBasePointer(const uint32_t value) {
|
||||
}
|
||||
inline void setScratchSpaceBasePointerHigh(const uint32_t value) {
|
||||
}
|
||||
} MEDIA_VFE_STATE;
|
||||
|
||||
typedef struct tagSAMPLER_STATE {
|
||||
static tagSAMPLER_STATE sInit(void) {
|
||||
SAMPLER_STATE state;
|
||||
return state;
|
||||
}
|
||||
inline void setIndirectStatePointer(const uint32_t indirectStatePointerValue) {
|
||||
}
|
||||
} SAMPLER_STATE;
|
||||
|
||||
typedef struct tagGPGPU_CSR_BASE_ADDRESS {
|
||||
static tagGPGPU_CSR_BASE_ADDRESS sInit(void) {
|
||||
GPGPU_CSR_BASE_ADDRESS state;
|
||||
return state;
|
||||
}
|
||||
inline void init(void) {
|
||||
}
|
||||
inline void setGpgpuCsrBaseAddress(uint64_t value) {
|
||||
}
|
||||
} GPGPU_CSR_BASE_ADDRESS;
|
||||
|
||||
typedef struct tagSTATE_SIP {
|
||||
static tagSTATE_SIP sInit(void) {
|
||||
STATE_SIP state;
|
||||
return state;
|
||||
}
|
||||
inline void init(void) {
|
||||
}
|
||||
inline void setSystemInstructionPointer(uint64_t value) {
|
||||
}
|
||||
} STATE_SIP;
|
||||
|
||||
typedef struct tagMI_SEMAPHORE_WAIT {
|
||||
typedef enum tagCOMPARE_OPERATION {
|
||||
COMPARE_OPERATION_SAD_NOT_EQUAL_SDD = 0x5,
|
||||
} COMPARE_OPERATION;
|
||||
|
||||
typedef enum tagWAIT_MODE {
|
||||
WAIT_MODE_SIGNAL_MODE = 0x0,
|
||||
WAIT_MODE_POLLING_MODE = 0x1,
|
||||
} WAIT_MODE;
|
||||
|
||||
static tagMI_SEMAPHORE_WAIT sInit(void) {
|
||||
MI_SEMAPHORE_WAIT state;
|
||||
return state;
|
||||
}
|
||||
|
||||
inline void setSemaphoreDataDword(uint32_t value) {}
|
||||
inline void setSemaphoreGraphicsAddress(uint64_t value) {}
|
||||
inline void setCompareOperation(COMPARE_OPERATION value) {}
|
||||
inline void setWaitMode(const WAIT_MODE value) {}
|
||||
} MI_SEMAPHORE_WAIT;
|
||||
|
||||
typedef struct tagMI_ATOMIC {
|
||||
typedef enum tagATOMIC_OPCODES {
|
||||
ATOMIC_4B_DECREMENT = 0x6,
|
||||
ATOMIC_8B_INCREMENT = 0x25,
|
||||
ATOMIC_8B_DECREMENT = 0x26,
|
||||
} ATOMIC_OPCODES;
|
||||
typedef enum tagDATA_SIZE {
|
||||
DATA_SIZE_DWORD = 0x0,
|
||||
DATA_SIZE_QWORD = 0x1,
|
||||
DATA_SIZE_OCTWORD = 0x2,
|
||||
} DATA_SIZE;
|
||||
|
||||
static tagMI_ATOMIC sInit(void) {
|
||||
tagMI_ATOMIC state;
|
||||
return state;
|
||||
}
|
||||
inline void setAtomicOpcode(ATOMIC_OPCODES) {}
|
||||
inline void setDataSize(DATA_SIZE) {}
|
||||
inline void setMemoryAddress(uint32_t) {}
|
||||
inline void setMemoryAddressHigh(uint32_t) {}
|
||||
} MI_ATOMIC;
|
||||
|
||||
typedef struct tagMI_LOAD_REGISTER_MEM {
|
||||
static tagMI_LOAD_REGISTER_MEM sInit(void) {
|
||||
MI_LOAD_REGISTER_MEM state;
|
||||
return state;
|
||||
}
|
||||
} MI_LOAD_REGISTER_MEM;
|
||||
|
||||
typedef struct tagMI_STORE_DATA_IMM {
|
||||
static tagMI_STORE_DATA_IMM sInit(void) {
|
||||
MI_STORE_DATA_IMM state;
|
||||
return state;
|
||||
}
|
||||
} MI_STORE_DATA_IMM;
|
||||
|
||||
typedef struct tagMI_NOOP {
|
||||
static tagMI_NOOP sInit(void) {
|
||||
MI_NOOP state;
|
||||
return state;
|
||||
}
|
||||
} MI_NOOP;
|
||||
|
||||
typedef struct tagPIPELINE_SELECT {
|
||||
static tagPIPELINE_SELECT sInit(void) {
|
||||
PIPELINE_SELECT state;
|
||||
return state;
|
||||
}
|
||||
} PIPELINE_SELECT;
|
||||
|
||||
typedef struct tagMI_ARB_CHECK {
|
||||
static tagMI_ARB_CHECK sInit(void) {
|
||||
MI_ARB_CHECK state;
|
||||
return state;
|
||||
}
|
||||
} MI_ARB_CHECK;
|
||||
|
||||
typedef struct tagSTATE_BASE_ADDRESS {
|
||||
static tagSTATE_BASE_ADDRESS sInit(void) {
|
||||
STATE_BASE_ADDRESS state;
|
||||
return state;
|
||||
}
|
||||
} STATE_BASE_ADDRESS;
|
||||
|
||||
typedef struct tagMEDIA_SURFACE_STATE {
|
||||
static tagMEDIA_SURFACE_STATE sInit(void) {
|
||||
MEDIA_SURFACE_STATE state;
|
||||
return state;
|
||||
}
|
||||
} MEDIA_SURFACE_STATE;
|
||||
|
||||
typedef struct tagMI_USER_INTERRUPT {
|
||||
static tagMI_USER_INTERRUPT sInit(void) {
|
||||
MI_USER_INTERRUPT state;
|
||||
return state;
|
||||
}
|
||||
} MI_USER_INTERRUPT;
|
||||
|
||||
using WALKER_TYPE = GPGPU_WALKER;
|
||||
using MI_STORE_REGISTER_MEM_CMD = MI_STORE_REGISTER_MEM;
|
||||
static GPGPU_WALKER cmdInitGpgpuWalker;
|
||||
static INTERFACE_DESCRIPTOR_DATA cmdInitInterfaceDescriptorData;
|
||||
static MEDIA_STATE_FLUSH cmdInitMediaStateFlush;
|
||||
static MEDIA_INTERFACE_DESCRIPTOR_LOAD cmdInitMediaInterfaceDescriptorLoad;
|
||||
static MI_SEMAPHORE_WAIT cmdInitMiSemaphoreWait;
|
||||
static PIPE_CONTROL cmdInitPipeControl;
|
||||
static RENDER_SURFACE_STATE cmdInitRenderSurfaceState;
|
||||
static MI_LOAD_REGISTER_IMM cmdInitLoadRegisterImm;
|
||||
static MI_LOAD_REGISTER_REG cmdInitLoadRegisterReg;
|
||||
static MI_LOAD_REGISTER_MEM cmdInitLoadRegisterMem;
|
||||
static MI_STORE_DATA_IMM cmdInitStoreDataImm;
|
||||
static MI_STORE_REGISTER_MEM cmdInitStoreRegisterMem;
|
||||
static MI_NOOP cmdInitNoop;
|
||||
static MI_BATCH_BUFFER_START cmdInitBatchBufferStart;
|
||||
static MI_BATCH_BUFFER_END cmdInitBatchBufferEnd;
|
||||
static MI_REPORT_PERF_COUNT cmdInitReportPerfCount;
|
||||
static MI_ATOMIC cmdInitAtomic;
|
||||
static PIPELINE_SELECT cmdInitPipelineSelect;
|
||||
static MI_ARB_CHECK cmdInitArbCheck;
|
||||
static MEDIA_VFE_STATE cmdInitMediaVfeState;
|
||||
static STATE_BASE_ADDRESS cmdInitStateBaseAddress;
|
||||
static MEDIA_SURFACE_STATE cmdInitMediaSurfaceState;
|
||||
static SAMPLER_STATE cmdInitSamplerState;
|
||||
static GPGPU_CSR_BASE_ADDRESS cmdInitGpgpuCsrBaseAddress;
|
||||
static STATE_SIP cmdInitStateSip;
|
||||
static BINDING_TABLE_STATE cmdInitBindingTableState;
|
||||
static MI_USER_INTERRUPT cmdInitUserInterrupt;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct AUBFamilyMapper<GENX> {
|
||||
static const AubMemDump::LrcaHelper *csTraits[aub_stream::NUM_ENGINES];
|
||||
static const MMIOList globalMMIO;
|
||||
static const MMIOList *perEngineMMIO[aub_stream::NUM_ENGINES];
|
||||
};
|
||||
|
||||
} // namespace NEO
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "runtime/helpers/hw_helper.h"
|
||||
#include "runtime/helpers/options.h"
|
||||
#include "runtime/os_interface/linux/os_interface.h"
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
@@ -98,8 +97,7 @@ struct HwInfoConfigTestLinuxDummy : HwInfoConfigTestLinux {
|
||||
|
||||
drm->StoredDeviceID = 1;
|
||||
drm->setGtType(GTTYPE_GT0);
|
||||
|
||||
testPlatform.eRenderCoreFamily = IGFX_UNKNOWN_CORE;
|
||||
testPlatform.eRenderCoreFamily = platformDevices[0]->pPlatform->eRenderCoreFamily;
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "runtime/os_interface/windows/os_interface.h"
|
||||
#include "runtime/os_interface/windows/wddm/wddm.h"
|
||||
#include "unit_tests/helpers/debug_manager_state_restore.h"
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "runtime/utilities/stackvec.h"
|
||||
#include "test.h"
|
||||
#include "unit_tests/helpers/hw_parse.h"
|
||||
#include "unit_tests/libult/mock_gfx_family.h"
|
||||
#include "unit_tests/mocks/mock_device.h"
|
||||
#include "unit_tests/mocks/mock_graphics_allocation.h"
|
||||
|
||||
@@ -189,17 +188,3 @@ HWTEST_F(PreambleTest, givenDefaultPreambleWhenGetThreadsMaxNumberIsCalledThenMa
|
||||
uint32_t expected = hwInfo.pSysInfo->EUCount * threadsPerEU;
|
||||
EXPECT_EQ(expected, value);
|
||||
}
|
||||
|
||||
TEST(DefaultPreambleHelperTest, givenDefaultPreambleHelperWhenGetAdditionalCommandsSizeThenZeroIsReturned) {
|
||||
auto size = PreambleHelper<GENX>::getAdditionalCommandsSize(MockDevice(**platformDevices));
|
||||
EXPECT_EQ(0u, size);
|
||||
}
|
||||
|
||||
TEST(DefaultPreambleHelperTest, givenDefaultPreambleHelperWhenProgramGenSpecificPreambleWorkAroundsThenDoNothing) {
|
||||
char preambleBuffer[4096];
|
||||
LinearStream preambleStream(preambleBuffer, 4096);
|
||||
size_t size = preambleStream.getUsed();
|
||||
|
||||
PreambleHelper<GENX>::programGenSpecificPreambleWorkArounds(&preambleStream, **platformDevices);
|
||||
EXPECT_EQ(size, preambleStream.getUsed());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user