anv: Implement VK_KHR_draw_indirect_count and VK_EXT_conditional_rendering

Submitted by Danylo Piliaiev on Oct. 17, 2018, 11:58 a.m.

Details

Reviewer None
Submitted Oct. 17, 2018, 11:58 a.m.
Last Updated Dec. 3, 2018, 3:49 p.m.
Revision 2

Cover Letter(s)

Revision 1
      This series implement VK_KHR_draw_indirect_count and VK_EXT_conditional_rendering extensions.
They are implemented together because they are highly interweaved.

There are already tests in VK_CTS for VK_KHR_draw_indirect_count and I made a pull request with
the tests for VK_EXT_conditional_rendering (https://github.com/KhronosGroup/VK-GL-CTS/pull/131).

VK_KHR_draw_indirect_count is implemented for gen7+.
VK_EXT_conditional_rendering is implemented for gen7.5+ because it requires MI_MATH to be
implemented correctly.

Since part of the tests aren't in VK-GL-CTS master I'm not sure how to test the implementation
of VK_EXT_conditional_rendering with my tests on CI. Could anyone help me with this?

Also the one thing I'm uncertain of is described in the last patch.

Many thanks to Jason Ekstrand for the help with the extensions.

Danylo Piliaiev (3):
  anv: Implement VK_KHR_draw_indirect_count for gen 7.5+
  anv: Implement VK_KHR_draw_indirect_count for gen 7
  anv: Implement VK_EXT_conditional_rendering for gen 7.5+

 src/intel/vulkan/anv_blorp.c       |   7 +-
 src/intel/vulkan/anv_device.c      |  12 +
 src/intel/vulkan/anv_extensions.py |   2 +
 src/intel/vulkan/anv_private.h     |   2 +
 src/intel/vulkan/genX_cmd_buffer.c | 355 ++++++++++++++++++++++++++++-
 5 files changed, 373 insertions(+), 5 deletions(-)
    

Revisions