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

Performance degradation in drawing bitmaps with recent vdp-gl versions #10

Open
julianregel opened this issue Apr 4, 2024 · 0 comments

Comments

@julianregel
Copy link

As mentioned on Discord, I've experienced a performance hit on upgrading from Quark 1.0.4RC2 to Console8 2.6.0 (and now with 2.7.2).

I've narrowed the performance issue down to the timings of the canvas->drawBitmap(xpos,ypos,currentRow); call. My testing involves wrapping the statement with xTaskGetTickCountFromISR() and calculating the time to execute. On the older VDP version, the execution was completing in 13-17 ticks, while on the newer VDP version, it takes between 23-25 ticks. This has a visible effect on screen as my code is drawing 30 bitmaps of 320x8 pixels per frame, so the lower the execution time, the better!

In order to try and narrow the issue down, I downgraded the vdp-gl lib_deps reference in platformio.ini and then attempted a build. For every error (functions that are referenced in the VDP code, but not in the underlying vdp-gl), I commented out the offending statement(s) until it built successfully. I then ran my test code.

I can confirm that if I revert to the vdp-gl.git#copy-to-bitmap build, the performance is fast. The performance overhead and slowdown appears to be the result of upgrading vdp-gl to the vdp-gl.git#gcol-paint-modes build.

I will continue to investigate, but if you have any ideas on what might be causing the slowdown, it would be appreciated. Given that my code is working correctly without the functionality in the gcol-paint-modes build, one possible option might be to facilitate a "fast path" to bypass the new features, but open to thoughts and ideas. Thanks.

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

No branches or pull requests

1 participant