Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant