The open source OpenXR runtime

c/render: More cleanup of render_gfx

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2380>

+135 -135
+135 -135
src/xrt/compositor/render/render_gfx.c
··· 257 257 * Allocate and upload data. 258 258 */ 259 259 ret = render_sub_alloc_ubo_alloc_and_write( // 260 - vk, // vk_bundle 260 + vk, // 261 261 &render->ubo_tracker, // rsat 262 - ubo_ptr, // ptr 263 - ubo_size, // size 262 + ubo_ptr, // 263 + ubo_size, // 264 264 &ubo); // out_rsa 265 265 VK_CHK_AND_RET(ret, "render_sub_alloc_ubo_alloc_and_write"); 266 266 ··· 270 270 */ 271 271 272 272 ret = vk_create_descriptor_set( // 273 - vk, // vk_bundle 274 - descriptor_pool, // descriptor_pool 275 - descriptor_set_layout, // descriptor_set_layout 276 - &descriptor_set); // descriptor_set 273 + vk, // 274 + descriptor_pool, // 275 + descriptor_set_layout, // 276 + &descriptor_set); // 277 277 VK_CHK_AND_RET(ret, "vk_create_descriptor_set"); 278 278 279 279 update_ubo_and_src_descriptor_set( // 280 - vk, // vk_bundle 281 - ubo_binding, // ubo_binding 282 - ubo.buffer, // buffer 283 - ubo.offset, // offset 284 - ubo.size, // size 285 - src_binding, // src_binding 286 - src_sampler, // sampler 287 - src_image_view, // image_view 288 - descriptor_set); // descriptor_set 280 + vk, // 281 + ubo_binding, // 282 + ubo.buffer, // 283 + ubo.offset, // 284 + ubo.size, // 285 + src_binding, // 286 + src_sampler, // 287 + src_image_view, // 288 + descriptor_set); // 289 289 290 290 *out_descriptor_set = descriptor_set; 291 291 ··· 301 301 302 302 VkDescriptorSet descriptor_sets[1] = {descriptor_set}; 303 303 vk->vkCmdBindDescriptorSets( // 304 - r->cmd, // commandBuffer 304 + r->cmd, // 305 305 VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint 306 306 r->gfx.layer.shared.pipeline_layout, // layout 307 307 0, // firstSet ··· 311 311 NULL); // pDynamicOffsets 312 312 313 313 vk->vkCmdBindPipeline( // 314 - r->cmd, // commandBuffer 314 + r->cmd, // 315 315 VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint 316 - pipeline); // pipeline 316 + pipeline); // 317 317 318 318 // This pipeline doesn't have any VBO input or indices. 319 319 320 320 vk->vkCmdDraw( // 321 - r->cmd, // commandBuffer 321 + r->cmd, // 322 322 vertex_count, // vertexCount 323 323 1, // instanceCount 324 324 0, // firstVertex ··· 717 717 VkResult ret; 718 718 719 719 ret = create_implicit_render_pass( // 720 - vk, // vk_bundle 720 + vk, // 721 721 format, // target_format 722 - load_op, // load_op 723 - final_layout, // final_layout 722 + load_op, // 723 + final_layout, // 724 724 &rgrp->render_pass); // out_render_pass 725 725 VK_CHK_WITH_RET(ret, "create_implicit_render_pass", false); 726 726 VK_NAME_RENDER_PASS(vk, rgrp->render_pass, "render_gfx_render_pass render pass"); ··· 730 730 }; 731 731 732 732 ret = create_mesh_pipeline( // 733 - vk, // vk_bundle 734 - rgrp->render_pass, // render_pass 735 - r->mesh.pipeline_layout, // pipeline_layout 736 - r->pipeline_cache, // pipeline_cache 737 - r->mesh.src_binding, // src_binding 738 - r->mesh.index_count_total, // mesh_index_count_total 739 - r->mesh.stride, // mesh_stride 740 - &simple_params, // params 741 - r->shaders->mesh_vert, // mesh_vert 742 - r->shaders->mesh_frag, // mesh_frag 733 + vk, // 734 + rgrp->render_pass, // 735 + r->mesh.pipeline_layout, // 736 + r->pipeline_cache, // 737 + r->mesh.src_binding, // 738 + r->mesh.index_count_total, // 739 + r->mesh.stride, // 740 + &simple_params, // 741 + r->shaders->mesh_vert, // 742 + r->shaders->mesh_frag, // 743 743 &rgrp->mesh.pipeline); // out_mesh_pipeline 744 744 VK_CHK_WITH_RET(ret, "create_mesh_pipeline", false); 745 745 VK_NAME_PIPELINE(vk, rgrp->mesh.pipeline, "render_gfx_render_pass mesh pipeline"); ··· 749 749 }; 750 750 751 751 ret = create_mesh_pipeline( // 752 - vk, // vk_bundle 753 - rgrp->render_pass, // render_pass 754 - r->mesh.pipeline_layout, // pipeline_layout 755 - r->pipeline_cache, // pipeline_cache 756 - r->mesh.src_binding, // src_binding 757 - r->mesh.index_count_total, // mesh_index_count_total 758 - r->mesh.stride, // mesh_stride 759 - &timewarp_params, // params 760 - r->shaders->mesh_vert, // mesh_vert 761 - r->shaders->mesh_frag, // mesh_frag 752 + vk, // 753 + rgrp->render_pass, // 754 + r->mesh.pipeline_layout, // 755 + r->pipeline_cache, // 756 + r->mesh.src_binding, // 757 + r->mesh.index_count_total, // 758 + r->mesh.stride, // 759 + &timewarp_params, // 760 + r->shaders->mesh_vert, // 761 + r->shaders->mesh_frag, // 762 762 &rgrp->mesh.pipeline_timewarp); // out_mesh_pipeline 763 763 VK_CHK_WITH_RET(ret, "create_mesh_pipeline", false); 764 764 VK_NAME_PIPELINE(vk, rgrp->mesh.pipeline_timewarp, "render_gfx_render_pass mesh pipeline timewarp"); ··· 768 768 769 769 // Cylinder 770 770 ret = create_layer_pipeline( // 771 - vk, // vk 772 - rgrp->render_pass, // render_pass 773 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 774 - r->pipeline_cache, // pipeline_cache 771 + vk, // 772 + rgrp->render_pass, // 773 + r->gfx.layer.shared.pipeline_layout, // 774 + r->pipeline_cache, // 775 775 blend_factor_premultiplied_alpha, // src_blend_factor 776 - r->shaders->layer_cylinder_vert, // module_vert 777 - r->shaders->layer_cylinder_frag, // module_frag 776 + r->shaders->layer_cylinder_vert, // 777 + r->shaders->layer_cylinder_frag, // 778 778 &rgrp->layer.cylinder_premultiplied_alpha); // out_pipeline 779 779 VK_CHK_WITH_RET(ret, "create_layer_pipeline", false); 780 780 VK_NAME_PIPELINE(vk, rgrp->layer.cylinder_premultiplied_alpha, 781 781 "render_gfx_render_pass cylinder premultiplied alpha"); 782 782 783 783 ret = create_layer_pipeline( // 784 - vk, // vk 785 - rgrp->render_pass, // render_pass 786 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 787 - r->pipeline_cache, // pipeline_cache 784 + vk, // 785 + rgrp->render_pass, // 786 + r->gfx.layer.shared.pipeline_layout, // 787 + r->pipeline_cache, // 788 788 blend_factor_unpremultiplied_alpha, // src_blend_factor 789 789 r->shaders->layer_cylinder_vert, // module_vert 790 790 r->shaders->layer_cylinder_frag, // module_frag ··· 795 795 796 796 // Equirect2 797 797 ret = create_layer_pipeline( // 798 - vk, // vk 799 - rgrp->render_pass, // render_pass 800 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 801 - r->pipeline_cache, // pipeline_cache 798 + vk, // 799 + rgrp->render_pass, // 800 + r->gfx.layer.shared.pipeline_layout, // 801 + r->pipeline_cache, // 802 802 blend_factor_premultiplied_alpha, // src_blend_factor 803 803 r->shaders->layer_equirect2_vert, // module_vert 804 804 r->shaders->layer_equirect2_frag, // module_frag ··· 808 808 "render_gfx_render_pass equirect2 premultiplied alpha"); 809 809 810 810 ret = create_layer_pipeline( // 811 - vk, // vk 812 - rgrp->render_pass, // render_pass 813 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 814 - r->pipeline_cache, // pipeline_cache 811 + vk, // 812 + rgrp->render_pass, // 813 + r->gfx.layer.shared.pipeline_layout, // 814 + r->pipeline_cache, // 815 815 blend_factor_unpremultiplied_alpha, // src_blend_factor 816 816 r->shaders->layer_equirect2_vert, // module_vert 817 817 r->shaders->layer_equirect2_frag, // module_frag ··· 822 822 823 823 // Projection. 824 824 ret = create_layer_pipeline( // 825 - vk, // vk 826 - rgrp->render_pass, // render_pass 827 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 828 - r->pipeline_cache, // pipeline_cache 825 + vk, // 826 + rgrp->render_pass, // 827 + r->gfx.layer.shared.pipeline_layout, // 828 + r->pipeline_cache, // 829 829 blend_factor_premultiplied_alpha, // src_blend_factor 830 830 r->shaders->layer_projection_vert, // module_vert 831 831 r->shaders->layer_shared_frag, // module_frag ··· 835 835 "render_gfx_render_pass projection premultiplied alpha"); 836 836 837 837 ret = create_layer_pipeline( // 838 - vk, // vk 839 - rgrp->render_pass, // render_pass 840 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 841 - r->pipeline_cache, // pipeline_cache 838 + vk, // 839 + rgrp->render_pass, // 840 + r->gfx.layer.shared.pipeline_layout, // 841 + r->pipeline_cache, // 842 842 blend_factor_unpremultiplied_alpha, // src_blend_factor 843 843 r->shaders->layer_projection_vert, // module_vert 844 844 r->shaders->layer_shared_frag, // module_frag ··· 849 849 850 850 // Quad 851 851 ret = create_layer_pipeline( // 852 - vk, // vk 853 - rgrp->render_pass, // render_pass 854 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 855 - r->pipeline_cache, // pipeline_cache 852 + vk, // 853 + rgrp->render_pass, // 854 + r->gfx.layer.shared.pipeline_layout, // 855 + r->pipeline_cache, // 856 856 blend_factor_premultiplied_alpha, // src_blend_factor 857 857 r->shaders->layer_quad_vert, // module_vert 858 858 r->shaders->layer_shared_frag, // module_frag ··· 861 861 VK_NAME_PIPELINE(vk, rgrp->layer.quad_premultiplied_alpha, "render_gfx_render_pass quad premultiplied alpha"); 862 862 863 863 ret = create_layer_pipeline( // 864 - vk, // vk 865 - rgrp->render_pass, // render_pass 866 - r->gfx.layer.shared.pipeline_layout, // pipeline_layout 867 - r->pipeline_cache, // pipeline_cache 864 + vk, // 865 + rgrp->render_pass, // 866 + r->gfx.layer.shared.pipeline_layout, // 867 + r->pipeline_cache, // 868 868 blend_factor_unpremultiplied_alpha, // src_blend_factor 869 869 r->shaders->layer_quad_vert, // module_vert 870 870 r->shaders->layer_shared_frag, // module_frag ··· 923 923 rtr->r = r; 924 924 925 925 ret = create_framebuffer( // 926 - vk, // vk_bundle, 927 - target, // image_view, 928 - rgrp->render_pass, // render_pass, 929 - extent.width, // width, 930 - extent.height, // height, 926 + vk, // 927 + target, // image_view 928 + rgrp->render_pass, // 929 + extent.width, // 930 + extent.height, // 931 931 &rtr->framebuffer); // out_external_framebuffer 932 932 VK_CHK_WITH_RET(ret, "create_framebuffer", false); 933 933 VK_NAME_FRAMEBUFFER(vk, rtr->framebuffer, "render_gfx_target_resources framebuffer"); ··· 984 984 }; 985 985 986 986 ret = vk->vkBeginCommandBuffer( // 987 - render->r->cmd, // commandBuffer 988 - &begin_info); // pBeginInfo 987 + render->r->cmd, // 988 + &begin_info); // 989 989 VK_CHK_WITH_RET(ret, "vkResetCommandPool", false); 990 990 991 991 vk->vkCmdResetQueryPool( // 992 - render->r->cmd, // commandBuffer 993 - render->r->query_pool, // queryPool 992 + render->r->cmd, // 993 + render->r->query_pool, // 994 994 0, // firstQuery 995 995 2); // queryCount 996 996 997 997 vk->vkCmdWriteTimestamp( // 998 - render->r->cmd, // commandBuffer 998 + render->r->cmd, // 999 999 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, // pipelineStage 1000 - render->r->query_pool, // queryPool 1000 + render->r->query_pool, // 1001 1001 0); // query 1002 1002 1003 1003 return true; ··· 1010 1010 VkResult ret; 1011 1011 1012 1012 vk->vkCmdWriteTimestamp( // 1013 - render->r->cmd, // commandBuffer 1013 + render->r->cmd, // 1014 1014 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, // pipelineStage 1015 - render->r->query_pool, // queryPool 1015 + render->r->query_pool, // 1016 1016 1); // query 1017 1017 1018 1018 ret = vk->vkEndCommandBuffer(render->r->cmd); ··· 1105 1105 .maxDepth = 1.0f, 1106 1106 }; 1107 1107 1108 - vk->vkCmdSetViewport(render->r->cmd, // commandBuffer 1108 + vk->vkCmdSetViewport(render->r->cmd, // 1109 1109 0, // firstViewport 1110 1110 1, // viewportCount 1111 - &viewport); // pViewports 1111 + &viewport); // 1112 1112 1113 1113 /* 1114 1114 * Scissor ··· 1127 1127 }, 1128 1128 }; 1129 1129 1130 - vk->vkCmdSetScissor(render->r->cmd, // commandBuffer 1130 + vk->vkCmdSetScissor(render->r->cmd, // 1131 1131 0, // firstScissor 1132 1132 1, // scissorCount 1133 - &scissor); // pScissors 1133 + &scissor); // 1134 1134 } 1135 1135 1136 1136 void ··· 1151 1151 1152 1152 return do_ubo_and_src_alloc_and_write( // 1153 1153 render, // 1154 - r->mesh.ubo_binding, // ubo_binding 1154 + r->mesh.ubo_binding, // 1155 1155 data, // ubo_ptr 1156 1156 sizeof(*data), // ubo_size 1157 - r->mesh.src_binding, // src_binding 1158 - src_sampler, // src_sampler 1159 - src_image_view, // src_image_view 1160 - r->gfx.ubo_and_src_descriptor_pool, // descriptor_pool 1161 - r->mesh.descriptor_set_layout, // descriptor_set_layout 1162 - out_descriptor_set); // out_descriptor_set 1157 + r->mesh.src_binding, // 1158 + src_sampler, // 1159 + src_image_view, // 1160 + r->gfx.ubo_and_src_descriptor_pool, // 1161 + r->mesh.descriptor_set_layout, // 1162 + out_descriptor_set); // 1163 1163 } 1164 1164 1165 1165 void ··· 1175 1175 1176 1176 VkDescriptorSet descriptor_sets[1] = {descriptor_set}; 1177 1177 vk->vkCmdBindDescriptorSets( // 1178 - r->cmd, // commandBuffer 1178 + r->cmd, // 1179 1179 VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint 1180 1180 r->mesh.pipeline_layout, // layout 1181 1181 0, // firstSet ··· 1189 1189 do_timewarp ? render->rtr->rgrp->mesh.pipeline_timewarp : render->rtr->rgrp->mesh.pipeline; 1190 1190 1191 1191 vk->vkCmdBindPipeline( // 1192 - r->cmd, // commandBuffer 1192 + r->cmd, // 1193 1193 VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint 1194 1194 pipeline); // pipeline 1195 1195 ··· 1203 1203 assert(ARRAY_SIZE(buffers) == ARRAY_SIZE(offsets)); 1204 1204 1205 1205 vk->vkCmdBindVertexBuffers( // 1206 - r->cmd, // commandBuffer 1206 + r->cmd, // 1207 1207 0, // firstBinding 1208 1208 ARRAY_SIZE(buffers), // bindingCount 1209 1209 buffers, // pBuffers ··· 1216 1216 1217 1217 if (r->mesh.index_count_total > 0) { 1218 1218 vk->vkCmdBindIndexBuffer( // 1219 - r->cmd, // commandBuffer 1219 + r->cmd, // 1220 1220 r->mesh.ibo.buffer, // buffer 1221 1221 0, // offset 1222 1222 VK_INDEX_TYPE_UINT32); // indexType 1223 1223 1224 1224 vk->vkCmdDrawIndexed( // 1225 - r->cmd, // commandBuffer 1225 + r->cmd, // 1226 1226 r->mesh.index_counts[mesh_index], // indexCount 1227 1227 1, // instanceCount 1228 1228 r->mesh.index_offsets[mesh_index], // firstIndex ··· 1230 1230 0); // firstInstance 1231 1231 } else { 1232 1232 vk->vkCmdDraw( // 1233 - r->cmd, // commandBuffer 1233 + r->cmd, // 1234 1234 r->mesh.vertex_count, // vertexCount 1235 1235 1, // instanceCount 1236 1236 0, // firstVertex ··· 1257 1257 return do_ubo_and_src_alloc_and_write( // 1258 1258 render, // 1259 1259 RENDER_BINDING_LAYER_SHARED_UBO, // ubo_binding 1260 - data, // 1261 - sizeof(*data), // 1260 + data, // ubo_ptr 1261 + sizeof(*data), // ubo_size 1262 1262 RENDER_BINDING_LAYER_SHARED_SRC, // src_binding 1263 1263 src_sampler, // 1264 1264 src_image_view, // 1265 - r->gfx.ubo_and_src_descriptor_pool, // descriptor_pool 1266 - r->gfx.layer.shared.descriptor_set_layout, // descriptor_set_layout 1267 - out_descriptor_set); // out_descriptor_set 1265 + r->gfx.ubo_and_src_descriptor_pool, // 1266 + r->gfx.layer.shared.descriptor_set_layout, // 1267 + out_descriptor_set); // 1268 1268 } 1269 1269 1270 1270 XRT_CHECK_RESULT VkResult ··· 1279 1279 return do_ubo_and_src_alloc_and_write( // 1280 1280 render, // 1281 1281 RENDER_BINDING_LAYER_SHARED_UBO, // ubo_binding 1282 - data, // 1283 - sizeof(*data), // 1282 + data, // ubo_ptr 1283 + sizeof(*data), // ubo_size 1284 1284 RENDER_BINDING_LAYER_SHARED_SRC, // src_binding 1285 1285 src_sampler, // 1286 1286 src_image_view, // 1287 - r->gfx.ubo_and_src_descriptor_pool, // descriptor_pool 1288 - r->gfx.layer.shared.descriptor_set_layout, // descriptor_set_layout 1289 - out_descriptor_set); // out_descriptor_set 1287 + r->gfx.ubo_and_src_descriptor_pool, // 1288 + r->gfx.layer.shared.descriptor_set_layout, // 1289 + out_descriptor_set); // 1290 1290 } 1291 1291 1292 1292 XRT_CHECK_RESULT VkResult ··· 1301 1301 return do_ubo_and_src_alloc_and_write( // 1302 1302 render, // 1303 1303 RENDER_BINDING_LAYER_SHARED_UBO, // ubo_binding 1304 - data, // 1305 - sizeof(*data), // 1304 + data, // ubo_ptr 1305 + sizeof(*data), // ubo_size 1306 1306 RENDER_BINDING_LAYER_SHARED_SRC, // src_binding 1307 1307 src_sampler, // 1308 1308 src_image_view, // 1309 - r->gfx.ubo_and_src_descriptor_pool, // descriptor_pool 1310 - r->gfx.layer.shared.descriptor_set_layout, // descriptor_set_layout 1311 - out_descriptor_set); // out_descriptor_set 1309 + r->gfx.ubo_and_src_descriptor_pool, // 1310 + r->gfx.layer.shared.descriptor_set_layout, // 1311 + out_descriptor_set); // 1312 1312 } 1313 1313 1314 1314 XRT_CHECK_RESULT VkResult ··· 1323 1323 return do_ubo_and_src_alloc_and_write( // 1324 1324 render, // 1325 1325 RENDER_BINDING_LAYER_SHARED_UBO, // ubo_binding 1326 - data, // 1327 - sizeof(*data), // 1326 + data, // ubo_ptr 1327 + sizeof(*data), // ubo_size 1328 1328 RENDER_BINDING_LAYER_SHARED_SRC, // src_binding 1329 1329 src_sampler, // 1330 1330 src_image_view, // 1331 - r->gfx.ubo_and_src_descriptor_pool, // descriptor_pool 1332 - r->gfx.layer.shared.descriptor_set_layout, // descriptor_set_layout 1333 - out_descriptor_set); // out_descriptor_set 1331 + r->gfx.ubo_and_src_descriptor_pool, // 1332 + r->gfx.layer.shared.descriptor_set_layout, // 1333 + out_descriptor_set); // 1334 1334 } 1335 1335 1336 1336 void ··· 1353 1353 dispatch_no_vbo( // 1354 1354 render, // 1355 1355 vertex_count, // vertex_count 1356 - pipeline, // pipeline 1357 - descriptor_set); // descriptor_set 1356 + pipeline, // 1357 + descriptor_set); // 1358 1358 } 1359 1359 1360 1360 void ··· 1369 1369 dispatch_no_vbo( // 1370 1370 render, // 1371 1371 4, // vertex_count 1372 - pipeline, // pipeline 1373 - descriptor_set); // descriptor_set 1372 + pipeline, // 1373 + descriptor_set); // 1374 1374 } 1375 1375 1376 1376 void ··· 1385 1385 dispatch_no_vbo( // 1386 1386 render, // 1387 1387 4, // vertex_count 1388 - pipeline, // pipeline 1389 - descriptor_set); // descriptor_set 1388 + pipeline, // 1389 + descriptor_set); // 1390 1390 } 1391 1391 1392 1392 void ··· 1401 1401 dispatch_no_vbo( // 1402 1402 render, // 1403 1403 4, // vertex_count 1404 - pipeline, // pipeline 1405 - descriptor_set); // descriptor_set 1404 + pipeline, // 1405 + descriptor_set); // 1406 1406 }