Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

schema: Redesign to better handle various cases listed here #310

Open
christophe-lunarg opened this issue Oct 27, 2022 · 3 comments
Open
Assignees

Comments

@christophe-lunarg
Copy link
Collaborator

christophe-lunarg commented Oct 27, 2022

This issue can be used to gather feature new ideas

@christophe-lunarg christophe-lunarg self-assigned this Oct 27, 2022
@christophe-lunarg christophe-lunarg changed the title Vulkan Tools Solution 2.0 : Ideas brainstorming Vulkan Profiles Tools Solution 2.0 : Ideas brainstorming Oct 27, 2022
@christophe-lunarg
Copy link
Collaborator Author

Schema: Improving the handling of feature/property synonyms : #7

@christophe-lunarg
Copy link
Collaborator Author

schema: refactoring to improve checking

Experiment here: #172

  • Add extensions and version requirements checking.
    • Eg: VK_KHR_device_group requires VK_KHR_device_group_creation

Schema Implementation:

{
	"type": "object",
	"additionalProperties": false,
	"properties": {
		"VK_KHR_device_group": {
			"type": "object"
		},
		"VK_KHR_device_group_creation": {
			"type": "object"
		}
	},
	"dependentRequired": {
		"VK_KHR_device_group": [ "VK_KHR_device_group_creation" ]
	}
}

JSON file example (if VK_KHR_device_group_creation is removed, then we get an error):

{
    "VK_KHR_device_group": {
      
    },
    "VK_KHR_device_group_creation": {
      
    }  
}

We could implement exclusion of extension vs core version like this:
schema:

{
	"type": "object",
	"additionalProperties": {
		"type": "object",
		"oneOf": [
			{
				"additionalProperties": false,
				"properties": {
					"VK_VERSION_1_1": {
						"type": "object"
					}
				}
			},
			{
				"additionalProperties": false,
				"properties": {
					"VK_KHR_device_group": {
						"type": "object"
					},
					"VK_KHR_device_group_creation": {
						"type": "object"
					}
				},
				"dependentRequired": {
					"VK_KHR_device_group": [ "VK_KHR_device_group_creation" ]
				}
			}
		]
	}
}

JSON files (if VK_VERSION_1_1 is defined, we get errors):

{
	"baseline": {
		"VK_KHR_device_group": {

		},
		"VK_KHR_device_group_creation": {

		}
	}
}

This said, a device profiles will have both the core and the extension defined so we should somehow make this a mode.

@christophe-lunarg
Copy link
Collaborator Author

layer: Allowing to override instance extensions

But this requires big changes in the Vulkan Loader.

@christophe-lunarg christophe-lunarg linked a pull request Dec 5, 2022 that will close this issue
@christophe-lunarg christophe-lunarg changed the title Vulkan Profiles Tools Solution 2.0 : Ideas brainstorming Vulkan Profiles Tools Solution 3.0 : Ideas brainstorming Nov 16, 2023
@christophe-lunarg christophe-lunarg changed the title Vulkan Profiles Tools Solution 3.0 : Ideas brainstorming Vulkan Profiles Tools Future : Ideas brainstorming Mar 11, 2024
@KhronosGroup KhronosGroup deleted a comment from juan-lunarg Mar 14, 2024
@KhronosGroup KhronosGroup deleted a comment from juan-lunarg Mar 14, 2024
@KhronosGroup KhronosGroup deleted a comment from juan-lunarg Mar 14, 2024
@christophe-lunarg christophe-lunarg changed the title Vulkan Profiles Tools Future : Ideas brainstorming schema: Redesign to better handle various cases listed here Mar 14, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant