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

Add support for the VK_EXT_debug_report extension #588

Merged
merged 3 commits into from
May 8, 2019
Merged

Add support for the VK_EXT_debug_report extension #588

merged 3 commits into from
May 8, 2019

Conversation

billhollings
Copy link
Contributor

@billhollings billhollings commented May 2, 2019

Add MVKDebugReportCallback class.
Add MVKVulkanAPIObject class as base class of classes exposed in Vulkan API.
Remove MVKRefCountedDeviceObject class and move ref-counting to MVKVulkanAPIObject.
Rename MVKDispatchableObject class to MVKDispatchableVulkanAPIObject.
Introduce multiple inheritance mixin classes into class hierarchy.
Add MVKBaseObject::getVulkanAPIObject() function to find Vulkan API object
controlling any subobject that needs to report something.
MVKCommandResourceFactory functions pass in calling object for reporting.
Add MVKBaseObject::reportMessage() & reportError() functions.
Replace mvkNotifyErrorWithText() static function with reportError()
instance function to allow access to debug reporting.
Redefine MVKLog*() functions to call reportError() instance method.
Delete MVKLogging.cpp.
Remove MVKLogging.h from MoltenVKShaderConverter project.
Add mvk_datatypes.hpp to redirect errors in mvk_datatypes.h functions to debug
reporting. Use mvk_datatypes.hpp internally for all references to these functions.
Convert several static methods to instance methods.
Refactor platform defines in MVKSurface.h.
Explicitly count MVKExtensionList extension count to avoid relying on struct size.
Remove MVKCommandBuffer::recordResult() and use setConfigurationResult().
Change log indication of error in logs from [MoltenVK ERROR] to [mvk-error],
for consistency with other log level indications.
Update MoltenVK version to 1.0.35.

Adds the first dependency feature for the functionality requested in issue #11.

Add MVKDebugReportCallback class.
Add MVKVulkanAPIObject class as base class of classes exposed in Vulkan API.
Remove MVKRefCountedDeviceObject class and move ref-counting to MVKVulkanAPIObject.
Rename MVKDispatchableObject class to MVKDispatchableVulkanAPIObject.
Introduce multiple inheritance mixin classes into class hierarchy.
Add MVKBaseObject::getVulkanAPIObject() function to find Vulkan API object
controlling any subobject that needs to report something.
MVKCommandResourceFactory functions pass in calling object for reporting.
Add MVKBaseObject::reportMessage() & reportError() functions.
Replace mvkNotifyErrorWithText() static function with reportError()
instance function to allow access to debug reporting.
Redefine MVKLog*() functions to call reportError() instance method.
Delete MVKLogging.cpp.
Remove MVKLogging.h from MoltenVKShaderConverter project.
Add mvk_datatypes.hpp to redirect errors in mvk_datatypes.h functions to debug
reporting. Use mvk_datatypes.hpp internally for all references to these functions.
Convert several static methods to instance methods.
Refactor platform defines in MVKSurface.h.
Explicitly count MVKExtensionList extension count to avoid relying on struct size.
Remove MVKCommandBuffer::recordResult() and use setConfigurationResult().
Change log indication of error in logs from [***MoltenVK ERROR***] to [mvk-error],
for consistency with other log level indications.
Update MoltenVK version to 1.0.35.
@billhollings billhollings requested a review from cdavis5e May 2, 2019 03:30
@billhollings
Copy link
Contributor Author

billhollings commented May 2, 2019

@cdavis5e , et al...

This PR is not intrusive from the perspective of Vulkan operational functionality. All Vulkan features and capabilities should be functioning as there were already.

However...this is highly intrusive from the following perspectives:

  • Files updated
  • Logging plumbing
  • Internal Vulkan class hierarchy

So...feel free to do so and point out any concerns...but it might not be too worthwhile combing through all the code changes. However...before merging this I would appreciate some basic testing and validation against existing apps if possible...just in case.

Thanks.

@cdavis5e
Copy link
Collaborator

cdavis5e commented May 6, 2019

I've tested it with Final Fantasy XIV. So far, I'm not seeing any problems with it.

I can see, though, that this is going to interact badly with #591.

@billhollings
Copy link
Contributor Author

Thanks for testing.

I can see, though, that this is going to interact badly with #591.

I'll merge your outstanding PR's in first and then reconcile this PR with the updated state before merging this one.

@billhollings billhollings merged commit fae3148 into KhronosGroup:master May 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants