Skip to content

Commit dfb6ced

Browse files
author
devsh
committed
remove default blit workgroup size
1 parent 6c3731d commit dfb6ced

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

examples_tests

include/nbl/video/utilities/CComputeBlit.h

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ class NBL_API2 CComputeBlit : public core::IReferenceCounted
1717

1818

1919
public:
20-
// This default is only for the blitting step (not alpha test or normalization steps) which always uses a 1D workgroup.
21-
// For the default values of alpha test and normalization steps, see getDefaultWorkgroupDims.
22-
static constexpr uint32_t DefaultBlitWorkgroupSize = 256u;
23-
2420
struct dispatch_info_t
2521
{
2622
uint32_t wgCount[3];
@@ -164,10 +160,13 @@ class NBL_API2 CComputeBlit : public core::IReferenceCounted
164160
const core::vectorSIMDu32& inExtent,
165161
const core::vectorSIMDu32& outExtent,
166162
const asset::IBlitUtilities::E_ALPHA_SEMANTIC alphaSemantic,
167-
const typename BlitUtilities::convolution_kernels_t& kernels,
168-
const uint32_t workgroupSize = DefaultBlitWorkgroupSize,
163+
const typename BlitUtilities::convolution_kernels_t& kernels,
164+
const uint32_t workgroupSize = 0,
169165
const uint32_t alphaBinCount = asset::IBlitUtilities::DefaultAlphaBinCount)
170166
{
167+
if (workgroupSize==0)
168+
workgroupSize = m_device->getPhysicalDevice()->getLimits().maxWorkgroupSize;
169+
171170
const auto workgroupDims = getDefaultWorkgroupDims(imageType);
172171
const auto paddedAlphaBinCount = getPaddedAlphaBinCount(workgroupDims, alphaBinCount);
173172

@@ -242,7 +241,7 @@ class NBL_API2 CComputeBlit : public core::IReferenceCounted
242241
const core::vectorSIMDu32& outExtent,
243242
const asset::IBlitUtilities::E_ALPHA_SEMANTIC alphaSemantic,
244243
const typename BlitUtilities::convolution_kernels_t& kernels,
245-
const uint32_t workgroupSize = DefaultBlitWorkgroupSize,
244+
const uint32_t workgroupSize = 256,
246245
const uint32_t alphaBinCount = asset::IBlitUtilities::DefaultAlphaBinCount)
247246
{
248247
const auto paddedAlphaBinCount = getPaddedAlphaBinCount(core::vectorSIMDu32(workgroupSize, 1, 1, 1), alphaBinCount);
@@ -425,7 +424,7 @@ class NBL_API2 CComputeBlit : public core::IReferenceCounted
425424
const asset::E_FORMAT inImageFormat,
426425
const asset::IImage::E_TYPE imageType,
427426
const typename BlitUtilities::convolution_kernels_t& kernels,
428-
const uint32_t workgroupSize = DefaultBlitWorkgroupSize,
427+
const uint32_t workgroupSize = 256,
429428
const uint32_t layersToBlit = 1)
430429
{
431430
core::vectorSIMDu32 outputTexelsPerWG;
@@ -609,7 +608,7 @@ class NBL_API2 CComputeBlit : public core::IReferenceCounted
609608
core::smart_refctd_ptr<video::IGPUBuffer> coverageAdjustmentScratchBuffer = nullptr,
610609
const float referenceAlpha = 0.f,
611610
const uint32_t alphaBinCount = asset::IBlitUtilities::DefaultAlphaBinCount,
612-
const uint32_t workgroupSize = DefaultBlitWorkgroupSize)
611+
const uint32_t workgroupSize = 256)
613612
{
614613
const core::vectorSIMDu32 outImageExtent(normalizationInImage->getCreationParameters().extent.width, normalizationInImage->getCreationParameters().extent.height, normalizationInImage->getCreationParameters().extent.depth, 1u);
615614

0 commit comments

Comments
 (0)