-
Notifications
You must be signed in to change notification settings - Fork 158
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
Mock ICD fails some simple operations #84
Comments
For historical context note that the original motivation for the Mock ICD was to allow validation layer tests to be run. That goal made cutting corners such as these reasonable. |
Yep, sounds good. Thanks Tobin. |
Now that swiftshader exists, it probably makes more sense to see if that path is a solution. The Mock ICD was not ever intended for the use case of this original issue. |
Hey Karen, SwiftShader's current set of uses do not include making a mock ICD. The Mock ICD could more easily be extended to cover a slightly more robust use case than SwiftShader could be reorganized to support dropping command streams. I think we should leave this open as a feature request as there's a pretty solid need for a mock ICD in the ecosystem. |
Ok. I will leave open for now. |
Thank you! |
Has there been anymore recent investigation into any of the limitations of the Mock ICD that @null77 pointed out?
This seems to play havoc when combined with VMAs VMA_DEBUG_DETECT_CORRUPTION feature which wasn't immediately obvious |
Unfortunately no, I haven't had time to modify Mock ICD since my focus has been on the loader. |
The Mock ICD works well for a few simple use cases but breaks down on some workloads.
One simple example is allocating and writing to a buffer larger than 0x1000. This will trigger errors. I think handling arbitrary sizes should be something the Mock ICD should be able to support without too much trouble.
A second example is mapping memory ranges. After a first map call that writes to the data, the memory is discarded and subsequent map calls return junk data. It seems plausible for the Mock ICD to store some state associated with the device memory.
In both cases the application on top of the Mock ICD needs to know specifically that it is running on top of the mock ICD to work without errors. This seems counter to the intent of the mock ICD. It should be basically invisible apart from not executing commands.
@tobine @ShabbyX @y-novikov fyi
The text was updated successfully, but these errors were encountered: