• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2020-2022 Khronos Group.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_EXT_pipeline_properties.adoc[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2022-04-19
11*IP Status*::
12    No known IP claims.
13*Contributors*::
14  - Mukund Keshava, NVIDIA
15  - Daniel Koch, NVIDIA
16  - Mark Bellamy, Arm
17
18
19=== Description
20
21Vulkan SC requires offline compilation of pipelines.
22In order to support this, the pipeline state is represented in a
23https://github.com/KhronosGroup/VulkanSC-Docs/wiki/JSON-schema[JSON schema]
24that is read by an offline tool for compilation.
25
26One method of developing a Vulkan SC application is to author a Vulkan
27application and use a layer to record and serialize the pipeline state and
28shaders for offline compilation.
29Each pipeline is represented by a separate JSON file, and can be identified
30with a pname:pipelineIdentifier.
31
32Once the pipelines have been compiled by the offline pipeline cache
33compiler, the Vulkan SC application can then use this
34pname:pipelineIdentifier for identifying the pipeline via Vulkan SC's
35pname:VkPipelineIdentifierInfo structure.
36
37This extension allows the Vulkan application to query the
38pname:pipelineIdentifier associated with each pipeline so that the
39application can store this with its pipeline metadata and the Vulkan SC
40application will then use to map the same state to an entry in the Vulkan SC
41pipeline cache.
42
43It is expected that this extension will initially be implemented in the json
44generation layer, although we can envision that there might be future uses
45for it in native Vulkan drivers as well.
46
47include::{generated}/interfaces/VK_EXT_pipeline_properties.adoc[]
48
49=== Issues
50(1) This extension does not make sense on a strict Vulkan SC implementation.
51It may however be of potential use in a non-strict Vulkan SC implementation.
52Should this extension be enabled as part of Vulkan SC as well?
53--
54*RESOLVED*: No.
55This extension will not be enabled for Vulkan SC.
56--
57
58(2) This is intended to be a general pipeline properties query, but is
59currently only retrieving the pipeline identifier.
60Should the pipeline identifier query be mandatory for this extension and for
61all queries using this entry point?
62--
63*RESOLVED*: Use slink:VkBaseOutStructure for the return parameter.
64Currently this is required to actually be a
65slink:VkPipelinePropertiesIdentifierEXT structure, but that could be relaxed
66in the future to allow other structure types or to allow other structures to
67be chained in along with this one.
68--
69
70(3) Should there be a feature structure? Should it be required?
71--
72*RESOLVED*: Add a feature structure, and a feature for querying pipeline
73identifier, but allow it to be optional so that this extension can be used
74as the basis for other pipeline property queries without requiring the
75pipeline identifier to be supported.
76--
77
78=== Version History
79
80  * Revision 1, 2022-04-19 (Mukund Keshava, Daniel Koch)
81  ** Initial draft
82