Skip to content

Commit fe8dd89

Browse files
author
devsh
committed
get stuff to compile
1 parent da630f9 commit fe8dd89

File tree

3 files changed

+63
-93
lines changed

3 files changed

+63
-93
lines changed

examples_tests

include/nbl/video/utilities/CComputeBlit.h

Lines changed: 60 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
namespace nbl::video
1010
{
1111

12-
class NBL_API2 CComputeBlit : public core::IReferenceCounted
13-
{
12+
class NBL_API2 CComputeBlit : public core::IReferenceCounted
13+
{
1414
private:
1515
struct vec3 { float x, y, z; };
1616
struct uvec3 { uint32_t x, y, z; };
@@ -56,7 +56,7 @@ namespace nbl::video
5656

5757
asset::SPushConstantRange pcRange = {};
5858
{
59-
pcRange.stageFlags = asset::IShader::ESS_COMPUTE;
59+
pcRange.stageFlags = IGPUShader::E_SHADER_STAGE::ESS_COMPUTE;
6060
pcRange.offset = 0u;
6161
pcRange.size = sizeof(nbl::hlsl::blit::parameters_t);
6262
}
@@ -228,7 +228,7 @@ namespace nbl::video
228228
" blit.execute(inCSA, outImgA, kwA, hA, sA, workGroupID, localInvocationIndex);\n"
229229
"}\n";
230230

231-
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), asset::IShader::ESS_COMPUTE, asset::IShader::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlit::createBlitSpecializedShader");
231+
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), IGPUShader::E_SHADER_STAGE::ESS_COMPUTE, IGPUShader::E_SHADER_STAGE::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlit::createBlitSpecializedShader");
232232
auto gpuShader = m_device->createShader(std::move(cpuShader.get()));
233233

234234
return gpuShader;
@@ -458,14 +458,14 @@ namespace nbl::video
458458
{
459459
switch (imageType)
460460
{
461-
case asset::IImage::ET_1D:
462-
return core::vectorSIMDu32(256, 1, 1, 1);
463-
case asset::IImage::ET_2D:
464-
return core::vectorSIMDu32(16, 16, 1, 1);
465-
case asset::IImage::ET_3D:
466-
return core::vectorSIMDu32(8, 8, 4, 1);
467-
default:
468-
return core::vectorSIMDu32(1, 1, 1, 1);
461+
case asset::IImage::ET_1D:
462+
return core::vectorSIMDu32(256, 1, 1, 1);
463+
case asset::IImage::ET_2D:
464+
return core::vectorSIMDu32(16, 16, 1, 1);
465+
case asset::IImage::ET_3D:
466+
return core::vectorSIMDu32(8, 8, 4, 1);
467+
default:
468+
return core::vectorSIMDu32(1, 1, 1, 1);
469469
}
470470
}
471471

@@ -556,11 +556,11 @@ namespace nbl::video
556556

557557
infos[0].desc = inImageView;
558558
infos[0].info.image.imageLayout = asset::IImage::LAYOUT::READ_ONLY_OPTIMAL;
559-
infos[0].info.image.sampler = samplers[wrapU][wrapV][wrapW][borderColor];
559+
infos[0].info.combinedImageSampler.sampler = samplers[wrapU][wrapV][wrapW][borderColor];
560560

561561
infos[1].desc = outImageView;
562562
infos[1].info.image.imageLayout = asset::IImage::LAYOUT::GENERAL;
563-
infos[1].info.image.sampler = nullptr;
563+
infos[1].info.combinedImageSampler.sampler = nullptr;
564564

565565
if (coverageAdjustmentScratchBuffer)
566566
{
@@ -679,35 +679,6 @@ namespace nbl::video
679679
}
680680
}
681681

682-
//! WARNING: This function blocks and stalls the GPU!
683-
template <typename BlitUtilities, typename... Args>
684-
inline void blit(video::IQueue* computeQueue, Args&&... args)
685-
{
686-
auto cmdPool = m_device->createCommandPool(computeQueue->getFamilyIndex(), video::IGPUCommandPool::CREATE_FLAGS::NONE);
687-
core::smart_refctd_ptr<video::IGPUCommandBuffer> cmdbuf;
688-
cmdPool->createCommandBuffers(video::IGPUCommandPool::BUFFER_LEVEL::PRIMARY, {&cmdbuf, &cmdbuf + 1});
689-
690-
auto semaphore = m_device->createSemaphore(0);
691-
692-
cmdbuf->begin(video::IGPUCommandBuffer::USAGE::ONE_TIME_SUBMIT_BIT);
693-
blit<BlitUtilities>(cmdbuf.get(), std::forward<Args>(args)...);
694-
cmdbuf->end();
695-
696-
video::IQueue::SSubmitInfo submitInfo;
697-
video::IQueue::SSubmitInfo::SSemaphoreInfo signalInfo;
698-
video::IQueue::SSubmitInfo::SCommandBufferInfo cmdbufInfo;
699-
cmdbufInfo.cmdbuf = cmdbuf.get();
700-
submitInfo.commandBuffers = { &cmdbufInfo, &cmdbufInfo + 1 };
701-
submitInfo.signalSemaphores = { &signalInfo, &signalInfo + 1 };
702-
signalInfo.semaphore = semaphore.get();
703-
signalInfo.value = 1;
704-
signalInfo.stageMask = asset::PIPELINE_STAGE_FLAGS::ALL_COMMANDS_BITS;
705-
computeQueue->submit({ &submitInfo, &submitInfo + 1 });
706-
707-
video::ISemaphore::SWaitInfo waitInfos{ semaphore.get(), 1 };
708-
m_device->blockForSemaphores({ &waitInfos, &waitInfos + 1});
709-
}
710-
711682
//! Returns the original format if supports STORAGE_IMAGE otherwise returns a format in its compat class which supports STORAGE_IMAGE.
712683
inline asset::E_FORMAT getOutImageViewFormat(const asset::E_FORMAT format)
713684
{
@@ -735,45 +706,45 @@ namespace nbl::video
735706

736707
switch (format)
737708
{
738-
case EF_R32G32B32A32_SFLOAT:
739-
case EF_R16G16B16A16_SFLOAT:
740-
case EF_R16G16B16A16_UNORM:
741-
case EF_R16G16B16A16_SNORM:
742-
return EF_R32G32B32A32_SFLOAT;
709+
case EF_R32G32B32A32_SFLOAT:
710+
case EF_R16G16B16A16_SFLOAT:
711+
case EF_R16G16B16A16_UNORM:
712+
case EF_R16G16B16A16_SNORM:
713+
return EF_R32G32B32A32_SFLOAT;
743714

744-
case EF_R32G32_SFLOAT:
745-
case EF_R16G16_SFLOAT:
746-
case EF_R16G16_UNORM:
747-
case EF_R16G16_SNORM:
748-
return EF_R32G32_SFLOAT;
715+
case EF_R32G32_SFLOAT:
716+
case EF_R16G16_SFLOAT:
717+
case EF_R16G16_UNORM:
718+
case EF_R16G16_SNORM:
719+
return EF_R32G32_SFLOAT;
749720

750-
case EF_B10G11R11_UFLOAT_PACK32:
751-
return EF_R16G16B16A16_SFLOAT;
721+
case EF_B10G11R11_UFLOAT_PACK32:
722+
return EF_R16G16B16A16_SFLOAT;
752723

753-
case EF_R32_SFLOAT:
754-
case EF_R16_SFLOAT:
755-
case EF_R16_UNORM:
756-
case EF_R16_SNORM:
757-
return EF_R32_SFLOAT;
724+
case EF_R32_SFLOAT:
725+
case EF_R16_SFLOAT:
726+
case EF_R16_UNORM:
727+
case EF_R16_SNORM:
728+
return EF_R32_SFLOAT;
758729

759-
case EF_A2B10G10R10_UNORM_PACK32:
760-
case EF_R8G8B8A8_UNORM:
761-
return EF_R16G16B16A16_UNORM;
730+
case EF_A2B10G10R10_UNORM_PACK32:
731+
case EF_R8G8B8A8_UNORM:
732+
return EF_R16G16B16A16_UNORM;
762733

763-
case EF_R8G8_UNORM:
764-
return EF_R16G16_UNORM;
734+
case EF_R8G8_UNORM:
735+
return EF_R16G16_UNORM;
765736

766-
case EF_R8_UNORM:
767-
return EF_R16_UNORM;
737+
case EF_R8_UNORM:
738+
return EF_R16_UNORM;
768739

769-
case EF_R8G8B8A8_SNORM:
770-
return EF_R16G16B16A16_SNORM;
740+
case EF_R8G8B8A8_SNORM:
741+
return EF_R16G16B16A16_SNORM;
771742

772-
case EF_R8G8_SNORM:
773-
return EF_R16G16_SNORM;
743+
case EF_R8G8_SNORM:
744+
return EF_R16G16_SNORM;
774745

775-
default:
776-
return EF_UNKNOWN;
746+
default:
747+
return EF_UNKNOWN;
777748
}
778749
}
779750

@@ -855,7 +826,7 @@ namespace nbl::video
855826

856827
static inline void dispatchHelper(video::IGPUCommandBuffer* cmdbuf, const video::IGPUPipelineLayout* pipelineLayout, const nbl::hlsl::blit::parameters_t& pushConstants, const dispatch_info_t& dispatchInfo)
857828
{
858-
cmdbuf->pushConstants(pipelineLayout, asset::IShader::ESS_COMPUTE, 0u, sizeof(nbl::hlsl::blit::parameters_t), &pushConstants);
829+
cmdbuf->pushConstants(pipelineLayout, IGPUShader::E_SHADER_STAGE::ESS_COMPUTE, 0u, sizeof(nbl::hlsl::blit::parameters_t), &pushConstants);
859830
cmdbuf->dispatch(dispatchInfo.wgCount[0], dispatchInfo.wgCount[1], dispatchInfo.wgCount[2]);
860831
}
861832

@@ -870,7 +841,7 @@ namespace nbl::video
870841
{
871842
bindings[i].binding = i;
872843
bindings[i].count = 1u;
873-
bindings[i].stageFlags = asset::IShader::ESS_COMPUTE;
844+
bindings[i].stageFlags = IGPUShader::E_SHADER_STAGE::ESS_COMPUTE;
874845
bindings[i].type = descriptorTypes[i];
875846
}
876847

@@ -883,18 +854,18 @@ namespace nbl::video
883854
const asset::E_FORMAT_CLASS formatClass = asset::getFormatClass(format);
884855
switch (formatClass)
885856
{
886-
case asset::EFC_8_BIT:
887-
return asset::EF_R8_UINT;
888-
case asset::EFC_16_BIT:
889-
return asset::EF_R16_UINT;
890-
case asset::EFC_32_BIT:
891-
return asset::EF_R32_UINT;
892-
case asset::EFC_64_BIT:
893-
return asset::EF_R32G32_UINT;
894-
case asset::EFC_128_BIT:
895-
return asset::EF_R32G32B32A32_UINT;
896-
default:
897-
return asset::EF_UNKNOWN;
857+
case asset::EFC_8_BIT:
858+
return asset::EF_R8_UINT;
859+
case asset::EFC_16_BIT:
860+
return asset::EF_R16_UINT;
861+
case asset::EFC_32_BIT:
862+
return asset::EF_R32_UINT;
863+
case asset::EFC_64_BIT:
864+
return asset::EF_R32G32_UINT;
865+
case asset::EFC_128_BIT:
866+
return asset::EF_R32G32B32A32_UINT;
867+
default:
868+
return asset::EF_UNKNOWN;
898869
}
899870
}
900871

@@ -942,8 +913,7 @@ namespace nbl::video
942913
const auto paddedAlphaBinCount = core::roundUp(oldAlphaBinCount, wgSize);
943914
return paddedAlphaBinCount;
944915
}
945-
};
946-
}
916+
};
947917

948-
#define _NBL_VIDEO_C_COMPUTE_BLIT_H_INCLUDED_
918+
}
949919
#endif

src/nbl/video/utilities/CComputeBlit.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ core::smart_refctd_ptr<video::IGPUShader> CComputeBlit::createAlphaTestSpecializ
3636
" nbl::hlsl::blit::alpha_test(ppA, inCSA, params.inputDims, params.referenceAlpha, globalInvocationID, workGroupID);\n"
3737
"}\n";
3838

39-
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), asset::IShader::ESS_COMPUTE, asset::IShader::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlitGLSLGLSL::createAlphaTestSpecializedShader");
39+
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), IGPUShader::E_SHADER_STAGE::ESS_COMPUTE, IGPUShader::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlitGLSLGLSL::createAlphaTestSpecializedShader");
4040

4141
return m_device->createShader(std::move(cpuShader.get()));
4242
}
@@ -87,7 +87,7 @@ core::smart_refctd_ptr<video::IGPUShader> CComputeBlit::createNormalizationSpeci
8787
" blit.execute(inCSA, outImgA, hA, ppA, sA, workGroupID, globalInvocationID, localInvocationIndex);\n"
8888
"}\n";
8989

90-
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), asset::IShader::ESS_COMPUTE, asset::IShader::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlitGLSL::createNormalizationSpecializedShader");
90+
auto cpuShader = core::make_smart_refctd_ptr<asset::ICPUShader>(shaderSourceStream.str().c_str(), IGPUShader::E_SHADER_STAGE::ESS_COMPUTE, IGPUShader::E_CONTENT_TYPE::ECT_HLSL, "CComputeBlitGLSL::createNormalizationSpecializedShader");
9191

9292
return m_device->createShader(std::move(cpuShader.get()));
9393
}

0 commit comments

Comments
 (0)