genxml: Make BLEND_STATE command support variable length array.
We need to emit BLEND_STATE, which size is 1 + 2 * nr_draw_buffers dwords (on gen8+), but the BLEND_STATE struct length is always 17. By marking it size 1, which is actually the size of the struct minus the BLEND_STATE_ENTRY's, we can emit a BLEND_STATE of variable number of entries. For gen6 and gen7 we set length to 0, since it only contains BLEND_STATE_ENTRY's, and no other data. With this change, we also change the code for blorp and anv to emit only the needed BLEND_STATE_ENTRY's, instead of always emitting 16 dwords on gen6-7 and 17 dwords on gen8+. v2: - Use designated initializers on blorp and remove 0 from initialization (Jason) - Default entries to disabled on Vulkan (Jason) - Rebase code. Signed-off-by:Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org>
- src/intel/blorp/blorp_genX_exec.h 26 additions, 11 deletionssrc/intel/blorp/blorp_genX_exec.h
- src/intel/genxml/gen6.xml 2 additions, 2 deletionssrc/intel/genxml/gen6.xml
- src/intel/genxml/gen7.xml 2 additions, 2 deletionssrc/intel/genxml/gen7.xml
- src/intel/genxml/gen75.xml 2 additions, 2 deletionssrc/intel/genxml/gen75.xml
- src/intel/genxml/gen8.xml 2 additions, 2 deletionssrc/intel/genxml/gen8.xml
- src/intel/genxml/gen9.xml 2 additions, 2 deletionssrc/intel/genxml/gen9.xml
- src/intel/vulkan/genX_pipeline.c 38 additions, 27 deletionssrc/intel/vulkan/genX_pipeline.c