mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2024-12-18 09:15:53 +01:00
57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# IIDX 24 GFX upscaling notes
|
|
|
|
Date: 2023-04-15
|
|
Author: icex2
|
|
|
|
Notes about my work on fixing the upscaling/downscaling feature of bemanitools for IIDX 20 to 26.
|
|
I realized that the render backend changed significantly that the old method that worked fine
|
|
doesn't work anymore.
|
|
|
|
The tool used in the screenshots is [apitrace](https://github.com/apitrace/apitrace).
|
|
|
|
## IIDX 24
|
|
|
|
The GFX engine in IIDX from 20 to 26 has a changed render loop that includes built-in scaling to
|
|
implement the SD and HD/HD* screen settings that are selectable in the operator menu
|
|
|
|
### Frame 0 - GFX init part
|
|
|
|
Setting up the context and device, as well as the frame buffer. This also creates the intermediate
|
|
texture that is configured as the render target once it begins drawing the scene.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/init.png)
|
|
|
|
### Frame 1 - A clean main render path
|
|
|
|
Start the scene and set the render target to the intermediate texture.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/beginscene.png)
|
|
|
|
After done drawing the scene, the intermediate texture is blended to the framebuffer. With a target
|
|
2D plane having the size of the target resolution, the blending applies linear scaling to either
|
|
up- or downscale the final image.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/scaling.png)
|
|
|
|
## IIDX 10
|
|
|
|
A recap of the old stuff, see also [my previous notes](2019-10-07-iidx-gfx-rendering-loops.md),
|
|
as I had to look at everything again to properly understand the differences.
|
|
|
|
### Frame 0 - GFX init part
|
|
|
|
Setting up the context and device, as well as the frame buffer. Renders directly to the frame
|
|
buffer.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/init10.png)
|
|
|
|
### Frame 1 - A clean main render path
|
|
|
|
Beginning the scene excerpt. The viewport needs to match the target resolution to display the
|
|
final image correctly.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/beginscene10.png)
|
|
|
|
Ending the scene excerpt, nothing fancy here, just swapping the back buffer.
|
|
|
|
![](2023-04-13-iidx-24-gfx-upscaling/endscene10.png) |