None
EN
Introducing Multiview for NVK
['Introducing Multiview For Nvk', 'Rebecca Mckeever']
Collabora Newsroom RSS Feed
struct mme_value view_mask = nvk_mme_load_scratch(b, VIEW_MASK); mme_if(b, ieq, view_mask, mme_zero()) { mme_free_reg(b, view_mask); nvk_mme_build_draw_loop(b, instance_count, first_vertex, vertex_count); } view_mask = nvk_mme_load_scratch(b, VIEW_MASK); mme_if(b, ine, view_mask, mme_zero()) { mme_free_reg(b, view_mask); struct mme_value view = mme_mov(b, mme_zero()); mme_while(b, ine, view, mme_imm(32)) { view_mask = nvk_mme_load_scratch(b, VIEW_MASK); struct mme_value has_view = mme_bfe(b, view_mask, view, 1); mme_free_reg(b, view_mask); mme_if(b, ine, has_view, mme_zero()) { mme_free_reg(b, has_view); nvk_mme_emit_view_index(b, view); nvk_mme_build_draw_loop(b, instance_count, first_vertex, vertex_count); } mme_add_to(b, view, view, mme_imm(1)); } mme_free_reg(b, view); } static inline…