<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Nov 7, 2017 at 6:47 AM, Chad Versace <span dir="ltr"><<a href="mailto:chadversary@chromium.org" target="_blank">chadversary@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Overview:<br>
<br>
This series implements 3 extensions:<br>
<br>
VK_EXT_external_memory_dma_buf<br>
VK_EXT_queue_family_foreign<br>
VK_EXT_image_drm_format_<wbr>modifier<br>
<br>
The patch series lives on my tag 'chadv/review/anv-dma-buf-v01'<wbr>.<br>
<a href="http://git.kiwitree.net/cgit/~chadv/mesa/log/?h=chadv/review/anv-dma-buf-v01" rel="noreferrer" target="_blank">http://git.kiwitree.net/cgit/~<wbr>chadv/mesa/log/?h=chadv/<wbr>review/anv-dma-buf-v01</a><br>
<br>
The work-in-progress lives on my branch 'wip/anv-dma-buf'.<br>
<a href="http://git.kiwitree.net/cgit/~chadv/mesa/log/?h=wip/anv-dma-buf" rel="noreferrer" target="_blank">http://git.kiwitree.net/cgit/~<wbr>chadv/mesa/log/?h=wip/anv-dma-<wbr>buf</a><br>
<br>
Specifications:<br>
<br>
For each extension, you can find a git branch of the Vulkan<br>
specification, as well as an online build of the spec, at<br>
<a href="http://kiwitree.net/~chadv/vulkan/" rel="noreferrer" target="_blank">http://kiwitree.net/~chadv/<wbr>vulkan/</a>.<br>
<br>
All 3 extension specifications are still drafts at various stages in the<br>
spec lifecycle.<br>
<br>
- VK_EXT_external_memory_dma_buf<br>
<br>
I'll ask Khronos tomorrow morning (Wed 8 Nov) to merge this<br>
extension. That would schedule it for publication no later<br>
Fri 17 Nov, unless something goes wrong.<br>
<br>
- VK_EXT_queue_family_foreign<br>
<br>
This extension is a slow, little thorn in my side. But it's needed<br>
for spec correctness in the interaction among<br>
VK_KHR_external_memory + VK_EXT_external_memory_dma_buf<br>
+ VK_EXT_image_drm_format_<wbr>modifier. In anvil today, in this patch<br>
series, it's implementation is a no-op.<br>
<br>
In Khronos, the discussion on this extension is wrapping up.<br>
I expect to ask Khronos to merge it no later than Wed 15 Nov, but<br>
hopefully sooner.<br>
<br>
- VK_EXT_image_drm_format_<wbr>modifier<br>
<br>
This is the big extension in the series. Its API is complete, in<br>
my opinion, and the specification language appears complete to<br>
the untrained eye. But there remain a few loose ends in the spec<br>
language that I need to finish before submitting it to Khronos.<br>
I've documented all the loose ends in the TODO section of the<br>
extensions's appendix [1].<br>
<br>
[1]: <a href="http://git.kiwitree.net/cgit/~chadv/vulkan-spec/tree/doc/specs/vulkan/appendices/VK_EXT_image_drm_format_modifier.txt?h=1.0-VK_EXT_image_drm_format_modifier" rel="noreferrer" target="_blank">http://git.kiwitree.net/cgit/~<wbr>chadv/vulkan-spec/tree/doc/<wbr>specs/vulkan/appendices/VK_<wbr>EXT_image_drm_format_modifier.<wbr>txt?h=1.0-VK_EXT_image_drm_<wbr>format_modifier</a>].<br>
<br>
The API is complete, though, modulo review on mesa-dev. So please<br>
proceed to review the extension language and the implementation.<br>
<br>
Testing:<br>
<br>
- vkcube<br>
<br>
I've tested portions of VK_EXT_image_drm_format_<wbr>modifier with<br>
a hacked version of krh's vkcube [2]. The following checklist<br>
shows what I've tested so far.<br>
<br>
[x] vkGetPhysicalDeviceFormatPrope<wbr>rties2KHR<br>
[x] vkGetPhysicalDeviceImageFormat<wbr>Properties2KHR<br>
[x] vkCreateImage<br>
[x] VkImageDrmFormatModifierListCr<wbr>eateInfoEXT<br>
[ ] VkImageExplicitDrmFormatModifi<wbr>erEXT<br>
[ ] Resolves of compression surfaces<br>
[x] vkGetImageDrmFormatModifierEXT<br>
[x] vkGetImageSubresouceLayout<br>
<br>
[2]: vkcube: <a href="http://github.com/chadversary/vkcube/commits/wip/vk-drm-format-mods" rel="noreferrer" target="_blank">http://github.com/chadversary/<wbr>vkcube/commits/wip/vk-drm-<wbr>format-mods</a><br>
<br>
- vk-gl-cts<br>
<br>
I'm doing a full run of dEQP-VK.*. I'm still waiting.<br>
<br>
- crucible<br>
<br>
We really need to write crucible tests to hammer some tricky<br>
corner cases. I haven't written them yet. Volunteers?<br></blockquote><div><br></div><div>If you expect anything other than anv to implement this, I think those tests should probably go in vk-gl-cts. I'm sorry.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Chad Versace (30):<br>
anv: Remove unused variable 'gen'<br>
anv: Suffix anv-private 'VK' tokens with 'ANV'<br>
anv: Refactor get_buffer_format_properties()<br>
anv: Better types for 'aspect' function params<br>
anv: Fix get_image_format_properties() - depthstencil (v2)<br>
anv: Fix get_image_format_properties() - ASTC<br>
anv: Refactor get_image_format_properties() - plane_format<br>
anv: Refactor get_image_format_properties() - base_isl_format<br>
anv: Refactor get_image_format_properties() - Reduce params<br>
anv: Fix get_image_format_properties() - 3-channel formats<br>
anv: Fix get_image_format_properties() - YCbCr<br>
anv: Rename get_image_format_properties()<br>
anv: Simplify anv_get_image_format_<wbr>properties()<br>
anv: Simplify anv_physical_device_get_<wbr>format_properties()<br>
anv: Remove anv_physical_device_get_<wbr>format_properties()<br>
anv: Refactor anv_get_format_plane() - explicit unsupported<br>
anv/image: Refactor choice of isl_tiling_flags_t<br>
anv: Refactor anv_GetImageSubresourceLayout(<wbr>)<br>
HACK: vulkan: Update headers and registry to chadv/1.0-dma-buf@a79a0ab<br>
HACK: vulkan: Install Vulkan headers<br>
RFC: anv: Implement VK_EXT_external_memory_dma_buf<br>
RFC: anv: Implement VK_EXT_queue_family_foreign<br>
RFC: anv: Support VkDrmFormatModifierPropertiesL<wbr>istEXT<br>
RFC: anv: Support VkPhysicalDeviceImageDrmFormat<wbr>ModifierInfoEXT<br>
RFC: anv: Support VkImageDrmFormatModifierListCr<wbr>eateInfoEXT<br>
RFC: anv: Support vkGetImageSubresourceLayout with modifiers<br>
RFC: anv: Support VkImageExplicitDrmFormatModifi<wbr>erCreateInfoEXT<br>
RFC: anv: Enable VK_EXT_image_drm_format_<wbr>modifier<br>
RFC: anv: Kill vkCreateDmaBufImageINTEL()<br>
anv/TODO: Updates for VK_EXT_image_drm_format_<wbr>modifier<br>
<br>
include/meson.build | 11 +<br>
include/vulkan/vulkan.h | 70 ++++-<br>
include/vulkan/vulkan_intel.h | 62 -----<br>
src/amd/vulkan/radv_private.h | 1 -<br>
src/intel/Makefile.sources | 1 -<br>
src/intel/<a href="http://Makefile.vulkan.am" rel="noreferrer" target="_blank">Makefile.vulkan.am</a> | 3 -<br>
src/intel/vulkan/TODO | 16 ++<br>
src/intel/vulkan/anv_blorp.c | 6 +-<br>
src/intel/vulkan/anv_device.c | 13 +-<br>
src/intel/vulkan/anv_<wbr>entrypoints_gen.py | 10 -<br>
src/intel/vulkan/anv_<wbr>extensions.py | 3 +<br>
src/intel/vulkan/anv_formats.c | 475 ++++++++++++++++++++++--------<wbr>--<br>
src/intel/vulkan/anv_image.c | 281 ++++++++++++++-----<br>
src/intel/vulkan/anv_intel.c | 117 --------<br>
src/intel/vulkan/anv_private.h | 21 +-<br>
src/intel/vulkan/genX_cmd_<wbr>buffer.c | 24 +-<br>
src/intel/vulkan/meson.build | 1 -<br>
src/vulkan/registry/vk.xml | 77 +++++-<br>
18 files changed, 738 insertions(+), 454 deletions(-)<br>
delete mode 100644 include/vulkan/vulkan_intel.h<br>
delete mode 100644 src/intel/vulkan/anv_intel.c<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.13.0<br>
<br>
</font></span></blockquote></div><br></div></div>