Skip to content
Permalink
Browse files

Change log for May 24, 2019 Vulkan 1.1.109 spec update:

  * Update release number to 109.

Github Issues:

  * Require matching for physical devices to be in a device group in the
    <<devsandqueues-devices, Devices>> section (public issue 695).
  * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value,
    Fetch Density Value>> section (public issue 954).
  * Fix styleguide links (public pull request 965).

Internal Issues:

  * Allow <<renderpass-compatibility, compatibility of single-subpass
    renderpasses>> with different resolve attachments (internal issue 1464).
  * Add some missing empty flags types to API spec so custom refpage
    generation doesn't break (internal issue 1607).
  * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat,
    Interpretation of Numeric Formats>> table, and clarify the requirement
    that the code:OpTypeImage sampled type match the bound image's numeric
    format for slink:VkClearColorValue and in the
    <<interfaces-resources-descset, Descriptor Set Interface>> section
    (internal issue 1646).
  * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>>
    section which should refer to rectangles, not triangles (internal issue
    1667).
  * Clarify the definition of time domains in elink:VkTimeDomainEXT
    (internal merge request 3110).
  * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>>
    table (internal merge request 3137).
  * Don't require extern sync on wait/signal semaphores in `vk.xml` for
    flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request
    3116).
  * Improve phrasing of compute and mesh shader size related to
    code:LocalSize and code:WorkgroupSize in
    slink:VkPhysicalDeviceMeshShaderPropertiesNV and
    slink:VkPhysicalDeviceMaintenance3Properties (internal merge request
    3156).
  * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter
    optional in `vk.xml` (internal merge request 3157).

New Extensions:

  * `<<VK_INTEL_performance_query>>`
  * `<<VK_INTEL_shader_integer_functions2>>`
  • Loading branch information...
oddhack committed May 24, 2019
1 parent 94b59c3 commit 6635a81b5b9dea234faf967d54abf7241db371c9
@@ -8,6 +8,55 @@ public pull requests that have been accepted.

-----------------------------------------------------

Change log for May 24, 2019 Vulkan 1.1.109 spec update:

* Update release number to 109.

Github Issues:

* Require matching for physical devices to be in a device group in the
<<devsandqueues-devices, Devices>> section (public issue 695).
* Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value,
Fetch Density Value>> section (public issue 954).
* Fix styleguide links (public pull request 965).

Internal Issues:

* Allow <<renderpass-compatibility, compatibility of single-subpass
renderpasses>> with different resolve attachments (internal issue 1464).
* Add some missing empty flags types to API spec so custom refpage
generation doesn't break (internal issue 1607).
* Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat,
Interpretation of Numeric Formats>> table, and clarify the requirement
that the code:OpTypeImage sampled type match the bound image's numeric
format for slink:VkClearColorValue and in the
<<interfaces-resources-descset, Descriptor Set Interface>> section
(internal issue 1646).
* Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>>
section which should refer to rectangles, not triangles (internal issue
1667).
* Clarify the definition of time domains in elink:VkTimeDomainEXT
(internal merge request 3110).
* Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>>
table (internal merge request 3137).
* Don't require extern sync on wait/signal semaphores in `vk.xml` for
flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request
3116).
* Improve phrasing of compute and mesh shader size related to
code:LocalSize and code:WorkgroupSize in
slink:VkPhysicalDeviceMeshShaderPropertiesNV and
slink:VkPhysicalDeviceMaintenance3Properties (internal merge request
3156).
* Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter
optional in `vk.xml` (internal merge request 3157).

New Extensions:

* `<<VK_INTEL_performance_query>>`
* `<<VK_INTEL_shader_integer_functions2>>`

-----------------------------------------------------

Change log for May 13, 2019 Vulkan 1.1.108 spec update:

* Update release number to 108.
@@ -121,7 +121,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 108
PATCHVERSION = 109
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else
@@ -367,7 +367,7 @@ MANCOPYRIGHT = $(MANDIR)/copyright-ccby.txt $(MANDIR)/footer.txt
GENREF = $(SCRIPTS)/genRef.py
LOGFILE = man/logfile
man/apispec.txt: $(SPECFILES) $(GENREF) $(SCRIPTS)/reflib.py $(SCRIPTS)/vkapi.py
$(PYTHON) $(GENREF) -log $(LOGFILE) $(SPECFILES)
$(PYTHON) $(GENREF) -log $(LOGFILE) $(EXTOPTIONS) $(SPECFILES)

# These targets are HTML5 ref pages
#
@@ -0,0 +1,213 @@
include::meta/VK_INTEL_performance_query.txt[]

*Last Modified Date*::
2018-05-16
*IP Status*::
No known IP claims.
*Contributors*::
- Lionel Landwerlin, Intel
- Piotr Maciejewski, Intel

This extension allows an application to capture performance data to be
interpreted by a external application or library.

Such a library is available at : https://github.com/intel/metrics-discovery

Performance analysis tools such as GPA
(https://software.intel.com/en-us/gpa) make use of this extension and the
metrics-discovery library to present the data in a human readable way.

=== New Object Types

* slink:VkPerformanceConfigurationINTEL

=== New Enum Constants

* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL

* Extending elink:VkQueryType:
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL

=== New Enums

* elink:VkPerformanceConfigurationTypeINTEL
* elink:VkQueryPoolSamplingModeINTEL
* elink:VkPerformanceOverrideTypeINTEL
* elink:VkPerformanceParameterTypeINTEL
* elink:VkPerformanceValueTypeINTEL

=== New Structures

* slink:VkPerformanceValueINTEL
* slink:VkInitializePerformanceApiInfoINTEL
* slink:VkQueryPoolCreateInfoINTEL
* slink:VkPerformanceMarkerInfoINTEL
* slink:VkPerformanceStreamMarkerInfoINTEL
* slink:VkPerformanceOverrideInfoINTEL
* slink:VkPerformanceConfigurationAcquireInfoINTEL

=== New Functions

* flink:vkInitializePerformanceApiINTEL
* flink:vkUninitializePerformanceApiINTEL
* flink:vkCmdSetPerformanceMarkerINTEL
* flink:vkCmdSetPerformanceOverrideINTEL
* flink:vkCmdSetPerformanceStreamMarkerINTEL
* flink:vkAcquirePerformanceConfigurationINTEL
* flink:vkReleasePerformanceConfigurationINTEL
* flink:vkQueueSetPerformanceConfigurationINTEL
* flink:vkGetPerformanceParameterINTEL

=== Issues

None.

=== Example Code

[source,c]
---------------------------------------------------

// A previously created device
VkDevice device;

// A queue from from device
VkQueue queue;

VkInitializePerformanceApiInfoINTEL performanceApiInfoIntel = {
VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
NULL,
NULL
};

vkInitializePerformanceApiINTEL(
device,
&performanceApiInfoIntel);

VkQueryPoolCreateInfoINTEL queryPoolIntel = {
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
NULL,
VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
};

VkQueryPoolCreateInfo queryPoolCreateInfo = {
VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
&queryPoolIntel,
0,
VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL,
1,
0
};

VkQueryPool queryPool;

VkResult result = vkCreateQueryPool(
device,
&queryPoolCreateInfo,
NULL,
&queryPool);

assert(VK_SUCCESS == result);

// A command buffer we want to record counters on
VkCommandBuffer commandBuffer;

VkCommandBufferBeginInfo commandBufferBeginInfo = {
VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
NULL,
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
NULL
};

result = vkBeginCommandBuffer(commandBuffer, &commandBufferBeginInfo);

assert(VK_SUCCESS == result);

vkCmdResetQueryPool(
commandBuffer,
queryPool,
0,
1);

vkCmdBeginQuery(
commandBuffer,
queryPool,
0,
0);

// Perform the commands you want to get performance information on
// ...

// Perform a barrier to ensure all previous commands were complete before
// ending the query
vkCmdPipelineBarrier(commandBuffer,
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
0,
0,
NULL,
0,
NULL,
0,
NULL);

vkCmdEndQuery(
commandBuffer,
queryPool,
0);

result = vkEndCommandBuffer(commandBuffer);

assert(VK_SUCCESS == result);

VkPerformanceConfigurationAcquireInfoINTEL performanceConfigurationAcquireInfo = {
VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
NULL,
VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
};

VkPerformanceConfigurationINTEL performanceConfigurationIntel;

result = vkAcquirePerformanceConfigurationINTEL(
device,
&performanceConfigurationAcquireInfo,
&performanceConfigurationIntel);

vkQueueSetPerformanceConfigurationINTEL(queue, performanceConfigurationIntel);

assert(VK_SUCCESS == result);

// Submit the command buffer and wait for its completion
// ...

result = vkReleasePerformanceConfigurationINTEL(
device,
performanceConfigurationIntel);

assert(VK_SUCCESS == result);

// Get the report size from metrics-discovery's QueryReportSize

result = vkGetQueryPoolResults(
device,
queryPool,
0, 1, QueryReportSize,
data, QueryReportSize, 0);

assert(VK_SUCCESS == result);

// The data can then be passed back to metrics-discovery from which
// human readable values can be queried.

---------------------------------------------------

=== Version History

* Revision 1, 2018-05-16 (Lionel Landwerlin)
- Initial revision
@@ -8,13 +8,15 @@ include::meta/VK_INTEL_shader_integer_functions2.txt[]
- Ian Romanick, Intel
- Ben Ashbaugh, Intel

This extension adds support for several new integer instructions in SPIR-V for
use in graphics shaders. Many of these instructions have pre-existing
counterparts in the Kernel environment.
This extension adds support for several new integer instructions in SPIR-V
for use in graphics shaders.
Many of these instructions have pre-existing counterparts in the Kernel
environment.

The added integer functions are defined by the
http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html[+SPV_INTEL_shader_integer_functions+]
SPIR-V extension and can be used with the GL_INTEL_shader_integer_functions2 GLSL extension.
SPIR-V extension and can be used with the GL_INTEL_shader_integer_functions2
GLSL extension.

=== New Object Types

@@ -58,7 +58,7 @@ None

1) Does X11 need a way to query for compatibility between a particular
physical device and a specific screen? This would be a more general query
than flink:vkGetPhysicalDeviceSurfaceSupportKHR : if it returned
than flink:vkGetPhysicalDeviceSurfaceSupportKHR; if it returned
ename:VK_TRUE, then the physical device could be assumed to support
presentation to any window on that screen.

0 comments on commit 6635a81

Please sign in to comment.
You can’t perform that action at this time.