19 fmt::format(
"Mip Gen {} {}",
i, name), queue, 0
u,
23 r->BindTextureSampler(
self, sampler,
"sampler");
24 r->BindShader(
self, RHIShaderStageBits::Compute,
"csMain",
"data/shaders/CSMipGeneration.spv");
27 self,
src,
"srcTexture", RHIPipelineStageBits::ComputeShader,
30 .range = RHITextureSubresourceRange::Create(srcAspect, 0, 1, layer, 1)
34 self,
dst,
"srcTexture", RHIPipelineStageBits::ComputeShader,
40 self,
dst,
"dstTexture", RHIPipelineStageBits::ComputeShader,
45 r->BindPushConstant(
self, RHIShaderStageBits::Compute, 0,
sizeof(float2));
49 RHITexture*
dstTex =
r->DerefResource(
dst).Get<RHITexture*>();
54 r->CmdSetPushConstant(
self,
cmd, RHIShaderStageBits::Compute, 0, float2{w,h});
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:149
void createCSMipGenerationPasses(Renderer *renderer, StringView name, RHIDeviceQueueType queue, ResourceHandle src, ResourceHandle dst, RHIExtent2D srcExtent, RHITextureAspectFlagBits srcAspect, RHIResourceFormat srcFormat, RHITextureAspectFlagBits dstAspect, RHIResourceFormat dstFormat, uint32_t maxMips=16, uint32_t layer=0, RHIDeviceSampler::SamplerDesc samplerDesc={})
Definition CSMipGeneration.hpp:6
static RHITextureSubresourceRange Create(RHITextureAspectFlag aspect=RHITextureAspectFlagBits::Color, uint32_t base_mip_level=0, uint32_t mip_count=1, uint32_t base_array_layer=0, uint32_t layer_count=1)
Helper function to create a Subresource Range with default parameters.
Definition Resource.hpp:148