The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

c/render: Add and use new samplers

+48 -3
+3 -3
src/xrt/compositor/render/render_compute.c
··· 580 580 VK_IMAGE_LAYOUT_GENERAL, // 581 581 subresource_range); // 582 582 583 - VkSampler sampler = r->compute.default_sampler; 583 + VkSampler sampler = r->samplers.clamp_to_edge; 584 584 VkSampler distortion_samplers[6] = { 585 585 sampler, sampler, sampler, sampler, sampler, sampler, 586 586 }; ··· 700 700 VK_IMAGE_LAYOUT_GENERAL, // 701 701 subresource_range); // 702 702 703 - VkSampler sampler = r->compute.default_sampler; 703 + VkSampler sampler = r->samplers.clamp_to_edge; 704 704 VkSampler distortion_samplers[6] = { 705 705 sampler, sampler, sampler, sampler, sampler, sampler, 706 706 }; ··· 821 821 VK_IMAGE_LAYOUT_GENERAL, // 822 822 subresource_range); // 823 823 824 - VkSampler sampler = r->compute.default_sampler; 824 + VkSampler sampler = r->samplers.mock; 825 825 VkSampler src_samplers[2] = {sampler, sampler}; 826 826 VkImageView src_image_views[2] = {r->mock.color.image_view, r->mock.color.image_view}; 827 827 VkSampler distortion_samplers[6] = {sampler, sampler, sampler, sampler, sampler, sampler};
+15
src/xrt/compositor/render/render_interface.h
··· 239 239 240 240 struct 241 241 { 242 + //! Sampler for mock/null images. 243 + VkSampler mock; 244 + 245 + //! Sampler that repeats the texture in all directions. 246 + VkSampler repeat; 247 + 248 + //! Sampler that clamps the coordinates to the edge in all directions. 249 + VkSampler clamp_to_edge; 250 + 251 + //! Sampler that clamps color samples to black in all directions. 252 + VkSampler clamp_to_border_black; 253 + } samplers; 254 + 255 + struct 256 + { 242 257 //! The binding index for the source texture. 243 258 uint32_t src_binding; 244 259
+30
src/xrt/compositor/render/render_resources.c
··· 576 576 577 577 578 578 /* 579 + * Common samplers. 580 + */ 581 + 582 + C(vk_create_sampler( // 583 + vk, // vk_bundle 584 + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // clamp_mode 585 + &r->samplers.mock)); // out_sampler 586 + 587 + C(vk_create_sampler( // 588 + vk, // vk_bundle 589 + VK_SAMPLER_ADDRESS_MODE_REPEAT, // clamp_mode 590 + &r->samplers.repeat)); // out_sampler 591 + 592 + C(vk_create_sampler( // 593 + vk, // vk_bundle 594 + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // clamp_mode 595 + &r->samplers.clamp_to_edge)); // out_sampler 596 + 597 + C(vk_create_sampler( // 598 + vk, // vk_bundle 599 + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, // clamp_mode 600 + &r->samplers.clamp_to_border_black)); // out_sampler 601 + 602 + 603 + /* 579 604 * Command buffer pool, needs to go first. 580 605 */ 581 606 ··· 960 985 } 961 986 962 987 struct vk_bundle *vk = r->vk; 988 + 989 + D(Sampler, r->samplers.mock); 990 + D(Sampler, r->samplers.repeat); 991 + D(Sampler, r->samplers.clamp_to_edge); 992 + D(Sampler, r->samplers.clamp_to_border_black); 963 993 964 994 D(ImageView, r->mock.color.image_view); 965 995 D(Image, r->mock.color.image);