ArneCRosenfeldt Posted January 18, 2022 Share Posted January 18, 2022 So I read ( on this website ) that internal SRAM from the GPU for the blitter access is fastest if we program the interrupt, the blitter, and then halt the GPU. I think, if the return address is fixed and register contents unimportant, we can save some instructions on the interrupt. Instead of returning from interrupt, the interrupt flag is just cleared and the GPU halted again. I see that this allows exclusive access to SRAM for the blitter. But maybe I have stuff to do for the GPU (T&L, occlusion and other culling). What if I use the line buffer? When I display 320x200 I have 60 lines where the line buffers are unused by the OP (NTSC. PAL would be 320x240). They are probably not switchted around. There is an address bit to select one of them. Has anyone checked how fast read access there is? For texels needed for many pixels ( GL_REPEAT, zoom ) this would be great. There is an address gap between those buffers, thus they cannot store a single texture, but one could be a proxy for the framebuffer (including the z-columns). This would be great for approx 1:1 scaled textures. Or this is used for mipmaps to avoid sort by texture on a mipmap level. Or to avoid perfect sort by texture, especially with triangles, where we could store 4 triangular textures. Likewise with 320px CRY there are 200 px space left in the linebuffer. Each line a small textured triangle could be drawn. This would be great with mipMaps and triangles on the smaller maps. I thought about rendering directly into the line buffer. But those fill-ins need to navigate around existing graphics .. I need z-buffer access. I fail to find anything pattern or output function to achieve z-buffer access. Maybe the GPU can do the z-interpolation, read z-phrases from DRAM, and assemble spans (in internal SRAM) for the blitter. Aligned pixels, words, and phrases can be written directly by the GPU (software rendering). Spans which zoom into a single texel are rendered as solid color. So every scanline this has to be done first to avoid artifacts, then line buffer as texture source is used, and then independent from the scanlines (if enough time is left) something else is blitted DRAM to DRAM. Since I have so many constraints about the rendering order, I cannot render back to front. I would need z-buffer (phrase cleared, bus hog on first blank line). So with the blitter at least this does not introduce page misses. Though in single pixel mode it still hurts me that a whole phrase with z values is read and three of them are discarded. Very large zoom in is rendered flat shaded into external DRAM because this is the fastest way to check the z-buffer. 2 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.