MCPcopy Create free account
hub / github.com/NVIDIA-RTX/RTXNTC / ExecuteBufferLoadingTasks

Function ExecuteBufferLoadingTasks

libraries/ntc-utils/src/BufferLoading.cpp:252–443  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

250}
251
252bool ExecuteBufferLoadingTasks(
253 nvrhi::IDevice* device,
254 nvrhi::ICommandList* commandList,
255 ntc::IContext* context,
256 ntc::IStream* inputFile,
257 GDeflateFeatures* gdeflateFeatures,
258 std::vector<BufferLoadingTask>& tasks,
259 nvrhi::BufferHandle& finalBuffer,
260 size_t stagingBufferSize,
261 size_t tempBufferSize,
262 size_t finalBufferSize)
263{
264 nvrhi::BufferHandle stagingBuffer;
265 MappedBuffer<uint8_t> mappedStagingBuffer(device);
266
267 nvrhi::BufferHandle tempBuffer;
268
269 if (stagingBufferSize)
270 {
271 nvrhi::BufferDesc stagingBufferDesc = nvrhi::BufferDesc()
272 .setByteSize(stagingBufferSize)
273 .setDebugName("BC7 Mode Staging Buffer")
274 .setCpuAccess(nvrhi::CpuAccessMode::Write);
275 stagingBuffer = device->createBuffer(stagingBufferDesc);
276 if (!stagingBuffer)
277 return false;
278 if (!mappedStagingBuffer.Map(stagingBuffer, nvrhi::CpuAccessMode::Write))
279 return false;
280 }
281
282 if (tempBufferSize)
283 {
284 nvrhi::BufferDesc tempBufferDesc = nvrhi::BufferDesc()
285 .setByteSize(tempBufferSize)
286 .setDebugName("BC7 Mode Temp Buffer")
287 .setCanHaveRawViews(true)
288 .setCanHaveUAVs(true)
289 .enableAutomaticStateTracking(nvrhi::ResourceStates::CopyDest);
290 tempBuffer = device->createBuffer(tempBufferDesc);
291 if (!tempBuffer)
292 return false;
293 }
294
295 if (finalBufferSize)
296 {
297 nvrhi::BufferDesc finalBufferDesc = nvrhi::BufferDesc()
298 .setByteSize(finalBufferSize)
299 .setDebugName("BC7 Mode Buffer")
300 .setCanHaveRawViews(true)
301 .setCanHaveUAVs(true)
302 .enableAutomaticStateTracking(nvrhi::ResourceStates::ShaderResource);
303 finalBuffer = device->createBuffer(finalBufferDesc);
304 if (!finalBuffer)
305 return false;
306 }
307
308 bool anyDStorageTasks = false;
309 commandList->open();

Calls 4

MapMethod · 0.80
GetMethod · 0.80

Tested by

no test coverage detected