Skip to content

Commit 4f5baf6

Browse files
fix usage of normalized coordinate sampling with a sampler, use texelFetch instead
1 parent bdb31f6 commit 4f5baf6

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

07_StagingAndMultipleQueues/app_resources/comp_shader.hlsl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
#include "../app_resources/common.hlsl"
44

5-
[[vk::combinedImageSampler]][[vk::binding(0,0)]] Texture2D texture;
6-
[[vk::combinedImageSampler]][[vk::binding(0,0)]] SamplerState samplerState;
5+
[[vk::binding(0,0)]] Texture2D texture;
76
[[vk::binding(1,0)]] RWStructuredBuffer<uint32_t> histogram;
87

98
[[vk::push_constant]]
@@ -18,7 +17,7 @@ void main(uint32_t3 ID : SV_DispatchThreadID)
1817
if(ID.x >= width || ID.y >= height)
1918
return;
2019

21-
const float32_t4 texel = texture.SampleLevel(samplerState, ID.xy, 0.0);
20+
const float32_t4 texel = texture.Load(int32_t3(ID.xy,/*miplevel*/0));
2221

2322
const uint32_t redVal = uint32_t(texel.r * 255.f + 0.5f);
2423
const uint32_t greenVal = uint32_t(texel.g * 255.f + 0.5f);

07_StagingAndMultipleQueues/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
2121
using device_base_t = application_templates::BasicMultiQueueApplication;
2222
using asset_base_t = application_templates::MonoAssetManagerAndBuiltinResourceApplication;
2323

24+
// TODO: would be cool if we used `system::ISystem::listItemsInDirectory(sharedInputCWD/"GLI")` as our dataset
2425
static constexpr std::array imagesToLoad = {
2526
"../app_resources/test0.png",
2627
"../app_resources/test1.png",
@@ -54,7 +55,6 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
5455
m_histogramSavedSemaphore = m_device->createSemaphore(TIMELINE_SEMAPHORE_STARTING_VALUE);
5556

5657
// TODO: create/initialize array of atomic pointers to IGPUImage* and IGPUBuffer* to hold results
57-
// no need i think
5858

5959
std::thread loadImagesThread(&StagingAndMultipleQueuesApp::loadImages, this);
6060
std::thread saveHistogramsThread(&StagingAndMultipleQueuesApp::saveHistograms, this);
@@ -212,7 +212,6 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
212212
if (!cmdBuff->pipelineBarrier(E_DEPENDENCY_FLAGS::EDF_NONE, pplnBarrierDepInfo0))
213213
logFailAndTerminate("Failed to issue barrier!\n");
214214

215-
transferUpQueue->startCapture();
216215
const uint64_t oldCntr = intendedSubmit.scratchSemaphore.value;
217216
const bool uploadCommendRecorded = m_utils->updateImageViaStagingBuffer(
218217
intendedSubmit, cpuImages[imageIdx]->getBuffer(), cpuImages[imageIdx]->getCreationParameters().format,
@@ -234,6 +233,7 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
234233
cmdBuff->end();
235234

236235
const IQueue::SSubmitInfo::SSemaphoreInfo signalSemaphore = {.semaphore=m_imagesLoadedSemaphore.get(),.value=imageIdx+1u,.stageMask=PIPELINE_STAGE_FLAGS::COPY_BIT};
236+
transferUpQueue->startCapture();
237237
getTransferUpQueue()->submit(intendedSubmit.popSubmit({&signalSemaphore,1}));
238238
transferUpQueue->endCapture();
239239

@@ -409,7 +409,6 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
409409
};
410410
m_device->updateDescriptorSets(1, write, 0u, nullptr);
411411

412-
computeQueue->startCapture();
413412
cmdBuff->begin(IGPUCommandBuffer::USAGE::NONE);
414413
cmdBuff->beginDebugMarker("My Compute Dispatch", core::vectorSIMDf(0, 1, 0, 1));
415414
cmdBuff->bindComputePipeline(pipeline.get());
@@ -440,6 +439,7 @@ class StagingAndMultipleQueuesApp final : public application_templates::BasicMul
440439
submitInfo[0].commandBuffers = cmdBuffSubmitInfo;
441440
submitInfo[0].signalSemaphores = signalSemaphoreSubmitInfo;
442441
submitInfo[0].waitSemaphores = {waitSemaphoreSubmitInfo, imageToProcessId < FRAMES_IN_FLIGHT ? 1u : 2u};
442+
computeQueue->startCapture();
443443
computeQueue->submit(submitInfo);
444444
computeQueue->endCapture();
445445
std::string msg = std::string("Image nr ") + std::to_string(imageToProcessId) + " processed. Resource idx: " + std::to_string(resourceIdx);

0 commit comments

Comments
 (0)