|
1664 | 1664 | <span id="1664">1664</span>
|
1665 | 1665 | <span id="1665">1665</span>
|
1666 | 1666 | <span id="1666">1666</span>
|
1667 |
| -<span id="1667">1667</span> |
1668 |
| -<span id="1668">1668</span> |
1669 |
| -<span id="1669">1669</span> |
1670 |
| -<span id="1670">1670</span> |
1671 |
| -<span id="1671">1671</span> |
1672 |
| -<span id="1672">1672</span> |
1673 |
| -<span id="1673">1673</span> |
1674 |
| -<span id="1674">1674</span> |
1675 |
| -<span id="1675">1675</span> |
1676 | 1667 | </pre><pre class="rust"><code><span class="kw">use</span> <span class="ident"><span class="kw">super</span>::conv</span>;
|
1677 | 1668 |
|
1678 | 1669 | <span class="kw">use</span> <span class="ident">ash</span>::{<span class="ident">extensions::khr</span>, <span class="ident">vk</span>};
|
|
1690 | 1681 | <span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">Default</span>)]</span>
|
1691 | 1682 | <span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PhysicalDeviceFeatures</span> {
|
1692 | 1683 | <span class="ident">core</span>: <span class="ident">vk::PhysicalDeviceFeatures</span>,
|
1693 |
| - <span class="ident">vulkan_1_1</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">vk::PhysicalDeviceVulkan11Features</span><span class="op">></span>, |
1694 | 1684 | <span class="kw">pub</span>(<span class="kw">super</span>) <span class="ident">vulkan_1_2</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">vk::PhysicalDeviceVulkan12Features</span><span class="op">></span>,
|
1695 | 1685 | <span class="kw">pub</span>(<span class="kw">super</span>) <span class="ident">descriptor_indexing</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">vk::PhysicalDeviceDescriptorIndexingFeaturesEXT</span><span class="op">></span>,
|
1696 | 1686 | <span class="ident">imageless_framebuffer</span>: <span class="prelude-ty">Option</span><span class="op"><</span><span class="ident">vk::PhysicalDeviceImagelessFramebufferFeaturesKHR</span><span class="op">></span>,
|
|
1852 | 1842 | <span class="comment">//.shader_resource_residency(requested_features.contains(wgt::Features::SHADER_RESOURCE_RESIDENCY))</span>
|
1853 | 1843 | .<span class="ident">geometry_shader</span>(<span class="ident">requested_features</span>.<span class="ident">contains</span>(<span class="ident">wgt::Features::SHADER_PRIMITIVE_INDEX</span>))
|
1854 | 1844 | .<span class="ident">build</span>(),
|
1855 |
| - <span class="ident">vulkan_1_1</span>: <span class="kw">if</span> <span class="ident">api_version</span> <span class="op">></span><span class="op">=</span> <span class="ident">vk::API_VERSION_1_1</span> { |
1856 |
| - <span class="prelude-val">Some</span>( |
1857 |
| - <span class="ident">vk::PhysicalDeviceVulkan11Features::builder</span>() |
1858 |
| - .<span class="ident">multiview</span>(<span class="ident">requested_features</span>.<span class="ident">contains</span>(<span class="ident">wgt::Features::MULTIVIEW</span>)) |
1859 |
| - .<span class="ident">build</span>(), |
1860 |
| - ) |
1861 |
| - } <span class="kw">else</span> { |
1862 |
| - <span class="prelude-val">None</span> |
1863 |
| - }, |
1864 | 1845 | <span class="ident">vulkan_1_2</span>: <span class="kw">if</span> <span class="ident">api_version</span> <span class="op">></span><span class="op">=</span> <span class="ident">vk::API_VERSION_1_2</span> {
|
1865 | 1846 | <span class="prelude-val">Some</span>(
|
1866 | 1847 | <span class="ident">vk::PhysicalDeviceVulkan12Features::builder</span>()
|
|
1991 | 1972 | } <span class="kw">else</span> {
|
1992 | 1973 | <span class="prelude-val">None</span>
|
1993 | 1974 | },
|
1994 |
| - <span class="ident">multiview</span>: <span class="kw">if</span> <span class="ident">enabled_extensions</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">vk::KhrMultiviewFn::name</span>()) { |
| 1975 | + <span class="ident">multiview</span>: <span class="kw">if</span> <span class="ident">api_version</span> <span class="op">></span><span class="op">=</span> <span class="ident">vk::API_VERSION_1_1</span> |
| 1976 | + <span class="op">|</span><span class="op">|</span> <span class="ident">enabled_extensions</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">vk::KhrMultiviewFn::name</span>()) |
| 1977 | + { |
1995 | 1978 | <span class="prelude-val">Some</span>(
|
1996 | 1979 | <span class="ident">vk::PhysicalDeviceMultiviewFeatures::builder</span>()
|
1997 | 1980 | .<span class="ident">multiview</span>(<span class="ident">requested_features</span>.<span class="ident">contains</span>(<span class="ident">wgt::Features::MULTIVIEW</span>))
|
|
2126 | 2109 |
|
2127 | 2110 | <span class="kw">let</span> <span class="ident">intel_windows</span> <span class="op">=</span> <span class="ident">caps</span>.<span class="ident">properties</span>.<span class="ident">vendor_id</span> <span class="op">==</span> <span class="ident">db::intel::VENDOR</span> <span class="op">&&</span> <span class="macro">cfg!</span>(<span class="ident">windows</span>);
|
2128 | 2111 |
|
2129 |
| - <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">vulkan_1_1</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">vulkan_1_1</span> { |
2130 |
| - <span class="ident">features</span>.<span class="ident">set</span>(<span class="ident">F::MULTIVIEW</span>, <span class="ident">vulkan_1_1</span>.<span class="ident">multiview</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span>); |
2131 |
| - } |
2132 |
| - |
2133 | 2112 | <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">vulkan_1_2</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">vulkan_1_2</span> {
|
2134 | 2113 | <span class="kw">const</span> <span class="ident">STORAGE</span>: <span class="ident">F</span> <span class="op">=</span> <span class="ident">F::STORAGE_RESOURCE_BINDING_ARRAY</span>;
|
2135 | 2114 | <span class="kw">if</span> <span class="ident"><span class="self">Self</span>::all_features_supported</span>(
|
|
2566 | 2545 | <span class="kw">let</span> <span class="ident">core</span> <span class="op">=</span> <span class="ident">vk::PhysicalDeviceFeatures::default</span>();
|
2567 | 2546 | <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">builder</span> <span class="op">=</span> <span class="ident">vk::PhysicalDeviceFeatures2KHR::builder</span>().<span class="ident">features</span>(<span class="ident">core</span>);
|
2568 | 2547 |
|
2569 |
| - <span class="kw">if</span> <span class="ident">capabilities</span>.<span class="ident">properties</span>.<span class="ident">api_version</span> <span class="op">></span><span class="op">=</span> <span class="ident">vk::API_VERSION_1_1</span> { |
| 2548 | + <span class="comment">// `VK_KHR_multiview` is promoted to 1.1</span> |
| 2549 | + <span class="kw">if</span> <span class="ident">capabilities</span>.<span class="ident">properties</span>.<span class="ident">api_version</span> <span class="op">></span><span class="op">=</span> <span class="ident">vk::API_VERSION_1_1</span> |
| 2550 | + <span class="op">|</span><span class="op">|</span> <span class="ident">capabilities</span>.<span class="ident">supports_extension</span>(<span class="ident">vk::KhrMultiviewFn::name</span>()) |
| 2551 | + { |
2570 | 2552 | <span class="kw">let</span> <span class="ident">next</span> <span class="op">=</span> <span class="ident">features</span>
|
2571 |
| - .<span class="ident">vulkan_1_1</span> |
2572 |
| - .<span class="ident">insert</span>(<span class="ident">vk::PhysicalDeviceVulkan11Features::default</span>()); |
| 2553 | + .<span class="ident">multiview</span> |
| 2554 | + .<span class="ident">insert</span>(<span class="ident">vk::PhysicalDeviceMultiviewFeatures::default</span>()); |
2573 | 2555 | <span class="ident">builder</span> <span class="op">=</span> <span class="ident">builder</span>.<span class="ident">push_next</span>(<span class="ident">next</span>);
|
2574 | 2556 | }
|
2575 | 2557 |
|
|
0 commit comments