If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
![]() |
|
|
#1 | |
|
Senior Member
|
Quote:
Chips with tiled memory, in my experience, don't render in a "scanline" way: That would defeat the purpose of having tiled memory. The rendering is done tile by tile in order to get the most memory bandwidth. Just wanted to clear that up. |
|
|
|
|
|
|
#2 |
|
Homo ergaster
Join Date: Feb 2002
Location: Cumbria, UK
Posts: 1,231
|
I was just going to add something that I had noticed in the comments made in the previous thread before it was closed...
The question of the shadows was for the objects at the side of the road. AFAIK, render-to-textures shadows are used for the moving objects only. I'm not 100% certain of this (the text reads "dynamic shadows for non-static objects only") but if the shadows of the scenery were produced in some other way then perhaps R-t-T is not the cause for the attention. |
|
|
|
|
|
#3 | |
|
Senior Member
Join Date: Jan 2002
Location: Abbots Langley
Posts: 732
|
Quote:
But generally current hardware AFAIK does not render in twiddled form and thus sees a slow down when texturing from render targets. K- |
|
|
|
|
|
|
#4 | |
|
Senior Member
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Join Date: Jan 2002
Location: Abbots Langley
Posts: 732
|
I know but you only talk for one specific party
So how far back does this functionality go ? K- |
|
|
|
|
|
#6 | |
|
Senior Member
|
Quote:
|
|
|
|
|
|
|
#7 |
|
Invisible Member
Join Date: Apr 2002
Location: La-la land
Posts: 5,015
|
Kristof:
Thanks for the explanation, but why would they make the feature 'intentionally' slow? If framebuffer writes are "swizzled" or whatever when written to optimize for bandwidth, why aren't texture render targets treated the same way? They are just like a small framebuffer after all! It seems illogical to introduce special case scenarios, especially if all it'll accomplish is to slow things down... -FaaR- |
|
|
|
|
|
#8 |
|
Senior Member
Join Date: Jan 2002
Location: Abbots Langley
Posts: 732
|
There is another reason why render targets are usually slow when used as a texture. Generally they are not mipmapped which means that even though they might be swizzled on some hardware, the texture cache is still going to thrash due to lacking lower mipmap levels.
I am trying to find a twiddled data diagram for textures but can't seem to find one... sigh... I know there are out there... somewhere K- |
|
|
|
|
|
#9 | |
|
Nutella Nutellae
Join Date: Feb 2002
Location: San Francisco
Posts: 4,297
|
Quote:
ciao, Marco |
|
|
|
|
|
|
#10 | |
|
Homo ergaster
Join Date: Feb 2002
Location: Cumbria, UK
Posts: 1,231
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Join Date: May 2002
Location: New York, NY
Posts: 12,678
|
I'd just like to say that things like swizzling really would make it seem like a darned good idea to have a separate texture-management unit on the GPU (Well, they already need to have something like this for TC...but it would be nice to use for render-to-texture situations).
Personally, it just seems obvious to me that swizzling of render targets will just be a natural optimization that will come when such things are common. Hopefully some high-end hardware will have such optimizations earlier. Additionally, does anybody know if AGP textures are stored in swizzled format? That also just seems like a natural optimization to make. It would also be nice if virtual AGP texturing were implemented in upcoming video cards. One final thing. Might not rendering in swizzled format actually improve memory bandwidth efficiency while rendering? (While at the same time possibly reducing it during buffer switch or display) |
|
|
|
|
|
#12 | |
|
Senior Member
|
Quote:
|
|
|
|
|
|
|
#13 |
|
Join Date: May 2002
Location: New York, NY
Posts: 12,678
|
Heh...guess it is. That's what I get for not reading carefully :P
|
|
|
|
|
|
#14 |
|
Senior Member
Join Date: Jan 2002
Location: Abbots Langley
Posts: 732
|
Yes, you can create a mipmap tree when rendering, but then the question is how do you do that ? Or more specifically if the driver has support for it how does the driver/hardware do that ?
In the end : uploaded texture = twiddled + mipmap pre-generated and uploaded once. render target texture = twiddled (not guaranteed) + mipmap missing or generated at a cost and uploaded possibly for each frame. MipMap generation can either be done by rendering the same scene multiple times at the various MipMap resolutions, possibly only a couple of levels. Or by downsampling the rendered topmap, similar to how AA is done. However its done its going to be an expensive operation. K- |
|
|
|
|
|
#15 | |
|
Join Date: May 2002
Location: New York, NY
Posts: 12,678
|
Quote:
Downsampling the rendered top map would both carry with it automatic AA, and would be far less performance-intensive. For optimal performance, it would require dedicated hardware (Which may already exist in current hardware...), but that shouldn't be a huge deal. The main question here is, can the video card continue rendering while this dedicated hardware is working on generating the MIP maps? That is, is the rendered texture needed immediately after it is rendering, stalling further rendering until the downsampling is done? It seems to me that if either the drivers or the software inserts a delay between when the texture is rendered and when it is needed, there needn't be much performance hit at all from generating the MIP maps. |
|
|
|
|
|
|
#16 |
|
Crazy coder
|
Using GL_SGIS_generate_mipmap (which is supported by R100 and up and GF3 and up + maybe some others) you can automatically generate mipmaps in hardware. It's quite fast actually, haven't noticed any significant performance reduction by using it. The rendering of the level 0 mipmap tends to be much more expensive than generating the mipmaps.
This is a feature I really miss in Direct3D. No autogeneration of mipmap basically renders RTT more or less useless, nice that it's going to be there in DX9 though. |
|
|
|
|
|
#17 | |
|
Nutella Nutellae
Join Date: Feb 2002
Location: San Francisco
Posts: 4,297
|
Quote:
ciao, Marco |
|
|
|
|
|
|
#18 | |||
|
Junior Member
Join Date: Jul 2002
Posts: 59
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#19 | |
|
Member
Join Date: Mar 2002
Posts: 141
|
Quote:
|
|
|
|
|
|
|
#20 | |
|
Senior Member
|
Quote:
|
|
|
|
|
|
|
#21 |
|
Professional Malcontent
Join Date: Feb 2002
Location: HTTP 404
Posts: 2,855
|
I thought some hardware could generate mip-maps via successive decimation.
But what would I know? |
|
|
|
|
|
#22 | ||
|
Member
Join Date: Mar 2002
Posts: 141
|
Quote:
|
||
|
|
|
|
|
#23 |
|
Monochrome wench
|
Well, remember this RTT stuff was originally because of 3D Mark a DirectX 8 program. DX8 doesn't have any method to automatically generate the lower mip levels. You pretty much must render each level individually.
There are 'other' methods that could be used i.e. 1) using 2 textures and manually downsampling one in to the other. or 2) if you want to do something that might seriously break on different hardware, set render target to be a lower mip level of the current texture source. This would be a really 'bad' idea -Colourless |
|
|
|
|
|
#24 |
|
Senior Member
Join Date: Jan 2002
Location: Abbots Langley
Posts: 732
|
Lots of little ones make one big... you need to read in the top level, write out a lower level, re-read that level, write out an even lower level, re-read that level, etc... for each render texture in the scene and for each frame... it all adds up to something. Not to mention that render target changes come at a cost as well.
Point mainly is its not "free" and will have some performance impact unless you are not bottlenecking yet. But at least we all learned something more about render to texture and MipMap generation, which is a good thing (tm) K- |
|
|
|
|
|
#25 | |
|
Member
Join Date: Mar 2002
Posts: 141
|
Quote:
Also want to point out that some cards can draw to a swizzled render target. |
|
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Render to depth texture with EXT_framebuffer_object | Ostsol | 3D Technology & Algorithms | 20 | 29-Oct-2005 01:29 |
| Xenos Texture Filtering Quality | Luminescent | 3D Architectures & Chips | 2 | 02-Aug-2005 23:21 |
| Some thoughts on render to texture, memory and PS3 GPU | JF_Aidan_Pryde | Console Technology | 0 | 23-Feb-2005 09:02 |
| Render To Texture Target Sizes | Dave Baumann | 3D Technology & Algorithms | 5 | 24-Oct-2004 16:24 |
| Microsoft to own every GPU? | Cyborg | 3D Architectures & Chips | 26 | 14-Jul-2002 11:15 |