comparison tests/test_rendering.nim @ 1414:5e5a3311ca44

did: small improvment to allow easy adjustment of shader-code
author sam <sam@basx.dev>
date Fri, 27 Dec 2024 17:20:31 +0700
parents ca3299ea1bdf
children 3b8a736c45a7
comparison
equal deleted inserted replaced
1413:bc6782c0edd6 1414:5e5a3311ca44
41 color: asGPUArray([vec3(0, 0, 1), vec3(0, 1, 0), vec3(1, 0, 0)], VertexBuffer), 41 color: asGPUArray([vec3(0, 0, 1), vec3(0, 1, 0), vec3(1, 0, 0)], VertexBuffer),
42 ) 42 )
43 assignBuffers(renderdata, mesh) 43 assignBuffers(renderdata, mesh)
44 renderdata.flushAllMemory() 44 renderdata.flushAllMemory()
45 45
46 var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) 46 var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass)
47 47
48 var start = getMonoTime() 48 var start = getMonoTime()
49 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: 49 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time:
50 withNextFrame(framebuffer, commandbuffer): 50 withNextFrame(framebuffer, commandbuffer):
51 withRenderPass( 51 withRenderPass(
134 assignBuffers(renderdata, quad) 134 assignBuffers(renderdata, quad)
135 assignBuffers(renderdata, instancesA) 135 assignBuffers(renderdata, instancesA)
136 assignBuffers(renderdata, instancesB) 136 assignBuffers(renderdata, instancesB)
137 renderdata.flushAllMemory() 137 renderdata.flushAllMemory()
138 138
139 var pipeline = createPipeline[SomeShader](renderPass = vulkan.swapchain.renderPass) 139 var pipeline = createPipeline(SomeShader(), renderPass = vulkan.swapchain.renderPass)
140 140
141 var start = getMonoTime() 141 var start = getMonoTime()
142 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: 142 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time:
143 withNextFrame(framebuffer, commandbuffer): 143 withNextFrame(framebuffer, commandbuffer):
144 withRenderPass( 144 withRenderPass(
249 assignBuffers(renderdata, uniforms2) 249 assignBuffers(renderdata, uniforms2)
250 uploadImages(renderdata, uniforms1) 250 uploadImages(renderdata, uniforms1)
251 uploadImages(renderdata, uniforms2) 251 uploadImages(renderdata, uniforms2)
252 renderdata.flushAllMemory() 252 renderdata.flushAllMemory()
253 253
254 var pipeline = createPipeline[QuadShader](renderPass = vulkan.swapchain.renderPass) 254 var pipeline = createPipeline(QuadShader(), renderPass = vulkan.swapchain.renderPass)
255 255
256 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) 256 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1)
257 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms2) 257 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms2)
258 258
259 var start = getMonoTime() 259 var start = getMonoTime()
388 assignBuffers(renderdata, otherset1) 388 assignBuffers(renderdata, otherset1)
389 assignBuffers(renderdata, otherset2) 389 assignBuffers(renderdata, otherset2)
390 uploadImages(renderdata, mainset) 390 uploadImages(renderdata, mainset)
391 renderdata.flushAllMemory() 391 renderdata.flushAllMemory()
392 392
393 var pipeline = createPipeline[QuadShader](renderPass = vulkan.swapchain.renderPass) 393 var pipeline = createPipeline(QuadShader(), renderPass = vulkan.swapchain.renderPass)
394 394
395 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], constset) 395 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], constset)
396 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[1], mainset) 396 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[1], mainset)
397 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[2], otherset1) 397 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[2], otherset1)
398 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[2], otherset2) 398 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[2], otherset2)
533 ) 533 )
534 assignBuffers(renderdata, uniforms1) 534 assignBuffers(renderdata, uniforms1)
535 535
536 renderdata.flushAllMemory() 536 renderdata.flushAllMemory()
537 537
538 var pipeline = createPipeline[CubeShader](renderPass = vulkan.swapchain.renderPass) 538 var pipeline = createPipeline(CubeShader(), renderPass = vulkan.swapchain.renderPass)
539 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) 539 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1)
540 540
541 var tStart = getMonoTime() 541 var tStart = getMonoTime()
542 var t = tStart 542 var t = tStart
543 543
618 ) 618 )
619 assignBuffers(renderdata, triangle) 619 assignBuffers(renderdata, triangle)
620 assignBuffers(renderdata, lines) 620 assignBuffers(renderdata, lines)
621 renderdata.flushAllMemory() 621 renderdata.flushAllMemory()
622 622
623 var pipeline1 = createPipeline[Shader]( 623 var pipeline1 = createPipeline(
624 Shader(),
624 renderPass = vulkan.swapchain.renderPass, 625 renderPass = vulkan.swapchain.renderPass,
625 polygonMode = VK_POLYGON_MODE_LINE, 626 polygonMode = VK_POLYGON_MODE_LINE,
626 lineWidth = 20'f32, 627 lineWidth = 20'f32,
627 ) 628 )
628 var pipeline2 = createPipeline[Shader]( 629 var pipeline2 = createPipeline(
629 renderPass = vulkan.swapchain.renderPass, polygonMode = VK_POLYGON_MODE_POINT 630 Shader(),
630 ) 631 renderPass = vulkan.swapchain.renderPass,
631 var pipeline3 = createPipeline[Shader]( 632 polygonMode = VK_POLYGON_MODE_POINT,
633 )
634 var pipeline3 = createPipeline(
635 Shader(),
632 renderPass = vulkan.swapchain.renderPass, 636 renderPass = vulkan.swapchain.renderPass,
633 topology = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, 637 topology = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
634 lineWidth = 5, 638 lineWidth = 5,
635 ) 639 )
636 var pipeline4 = createPipeline[Shader]( 640 var pipeline4 = createPipeline(
641 Shader(),
637 renderPass = vulkan.swapchain.renderPass, 642 renderPass = vulkan.swapchain.renderPass,
638 topology = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 643 topology = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
639 ) 644 )
640 645
641 var start = getMonoTime() 646 var start = getMonoTime()
717 ), 722 ),
718 ) 723 )
719 assignBuffers(renderdata, mesh) 724 assignBuffers(renderdata, mesh)
720 renderdata.flushAllMemory() 725 renderdata.flushAllMemory()
721 726
722 var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) 727 var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass)
723 var uniforms1 = asDescriptorSetData( 728 var uniforms1 = asDescriptorSetData(
724 Uniforms(textures: loadImageArray[BGRA](["art.png", "art1.png"])) 729 Uniforms(textures: loadImageArray[BGRA](["art.png", "art1.png"]))
725 ) 730 )
726 uploadImages(renderdata, uniforms1) 731 uploadImages(renderdata, uniforms1)
727 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) 732 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1)
794 ), 799 ),
795 ) 800 )
796 assignBuffers(renderdata, mesh) 801 assignBuffers(renderdata, mesh)
797 renderdata.flushAllMemory() 802 renderdata.flushAllMemory()
798 803
799 var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) 804 var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass)
800 var uniforms1 = asDescriptorSetData(Uniforms(texture1: loadImage[BGRA]("art.png"))) 805 var uniforms1 = asDescriptorSetData(Uniforms(texture1: loadImage[BGRA]("art.png")))
801 uploadImages(renderdata, uniforms1) 806 uploadImages(renderdata, uniforms1)
802 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) 807 initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1)
803 808
804 var start = getMonoTime() 809 var start = getMonoTime()
904 assignBuffers(renderdata, quad) 909 assignBuffers(renderdata, quad)
905 uploadImages(renderdata, uniforms1) 910 uploadImages(renderdata, uniforms1)
906 renderdata.flushAllMemory() 911 renderdata.flushAllMemory()
907 912
908 var 913 var
909 drawPipeline = createPipeline[TriangleShader](renderPass = offscreenRP) 914 drawPipeline = createPipeline(TriangleShader(), renderPass = offscreenRP)
910 presentPipeline = createPipeline[PresentShader](renderPass = presentRP) 915 presentPipeline = createPipeline(PresentShader(), renderPass = presentRP)
911 916
912 initDescriptorSet(renderdata, presentPipeline.descriptorSetLayouts[0], uniforms1) 917 initDescriptorSet(renderdata, presentPipeline.descriptorSetLayouts[0], uniforms1)
913 918
914 # create depth buffer images (will not use the one in the swapchain 919 # create depth buffer images (will not use the one in the swapchain
915 var 920 var