de·fer1 (d-fūr)SA said:There was nothing mentioned about deferring anything. Although an IMR renders immediately it doesn't necessarily need to render everything immediately.
arjan de lumens said:I'm afraid that I don't understand - I don't see how this can become 'immediate-mode tiling' - sounds more like a partially-deferred scheme to me, and I don't see the connection to tiling. Care to explain further?
Which doesn't preclude the current ATI algorithm from being within, say, 0.1% of the "best possible" algorithm (although I do believe there is a bit more room than that left)....
arjan de lumens said:Got me thinking - where in the basic IMR architecture is there any potential for any improvement over R300? (that is, other than adding brute force: bandwidth, pipelines, texture and vertex units etc)
- Z-buffering/Early Z-test/Z-compression/hierarchical Z: R300 is ATI's third pass at hierarchical Z - I doubt there is much left to gain here other than in conjunction with bounding volumes.
- Bounding volumes rejection - may be useful combined with Hierarchical Z - requires developer support.
- Anisotropic mapping - very little left to gain. Given the kind of performance hit R300 takes when doing aniso, it looks like ATI has actually superceded the Feline algorithm (!).
- Texture compression - Some room for improvement over S3TC - VQTC looks like a better method in general. Requires some developer support.
- Immediate mode tiling - requires extensive developer support, as long as OpenGL/Direct3d don't get scene graph support. You can do this on an R300 today, using OpenGL's scissor test to define a 'tile', if you feel so inclined
- Geometry data compression - R300 supports N-patches and displacement mapping, which are, after all, just compact ways to represent complex geometry - other than that, there may be a little room for compressing vertex arrays.
- Antialiasing - with any given number of samples per pixel, R300's compressed multisampling should be about comparable to Z3 wrt bandwidth usage - Z3 may offer slightly better quality. There are faster AA methods as well, but they tend to require substantial developer effort in order not to break down all the time.
- Stencil buffer compression - here, there seems to be room for substantial improvements (I guess; Nvidia and ATI have been silent on this issue so far)
- Framebuffer compression (other than collapsing same-color samples for multisampling) - potential for moderate improvements for skies, featureless walls and other surfaces with sufficiently gradual color changes. Possibly difficult to do efficiently enough to be useful.
arjan de lumens said:Got me thinking - where in the basic IMR architecture is there any potential for any improvement over R300? (that is, other than adding brute force: bandwidth, pipelines, texture and vertex units etc)
- ...
- Texture compression - Some room for improvement over S3TC - VQTC looks like a better method in general. Requires some developer support.
- ...
The way I understand it from your posts: A renderer that gathers a bunch of polygon data, less than a full frame, but still a substantial amount, then renders the data in a more or less traditional tile-based manner, then goes on to collect more data, on and on until the frame is fully rendered. Is this correct?Chalnoth said:arjan de lumens said:I'm afraid that I don't understand - I don't see how this can become 'immediate-mode tiling' - sounds more like a partially-deferred scheme to me, and I don't see the connection to tiling. Care to explain further?
I'm just talking about going partway to a fully-deferred renderer, but not all the way. As DemoCoder said, a "lazy renderer"
Which doesn't preclude the current ATI algorithm from being within, say, 0.1% of the "best possible" algorithm (although I do believe there is a bit more room than that left)....
I'm absolutely certain there's a hell of a lot more room left. We are really in the infancy of all computer technology, even moreso in the 3D graphics field, both in hardware and in software. There are huge advancements to be made everywhere in computers. I see it as an absolute impossibility that a video card using some tech in a first-generation design, and other tech that's a mere one-two years old (by the parent company, anyway) can be anywhere close to optimal.
arjan de lumens said:As for immediate-mode renderers: If a renderer needs to defer/delay/put off the rendering of even one polygon for any reason whatsoever other than that the renderer is just busy, then the renderer does NOT qualify as an immediate-mode renderer - the 'immediate-mode' aspect is lost when that polygon is deferred. (If you disagree with this restriction on what constitutes an 'immediate-mode renderer', then say so!) For renderers that do defer some, but not all, polygons, 'partially-deferred' is a more appropriate term.
The point here is that when the "immediate-mode" renderer starts deferring any polygon at all, it is no longer doing immediate-mode rendering in any meaningful sense of the term "immediate-mode".DaveBaumann said:arjan de lumens said:As for immediate-mode renderers: If a renderer needs to defer/delay/put off the rendering of even one polygon for any reason whatsoever other than that the renderer is just busy, then the renderer does NOT qualify as an immediate-mode renderer - the 'immediate-mode' aspect is lost when that polygon is deferred. (If you disagree with this restriction on what constitutes an 'immediate-mode renderer', then say so!) For renderers that do defer some, but not all, polygons, 'partially-deferred' is a more appropriate term.
This is crossing boundries here, because, as we know, if a defferred renderer doesn't have sufficient binning space it will render whats binned prior to an entire frame being captured - how does this differ from an immediate mode renderer deffering some data but noit necessarily all?
arjan de lumens said:As for immediate-mode renderers: If a renderer needs to defer/delay/put off the rendering of even one polygon for any reason whatsoever other than that the renderer is just busy, then the renderer does NOT qualify as an immediate-mode renderer - the 'immediate-mode' aspect is lost when that polygon is deferred. (If you disagree with this restriction on what constitutes an 'immediate-mode renderer', then say so!) For renderers that do defer some, but not all, polygons, 'partially-deferred' is a more appropriate term.
Chalnoth said:I don't care. It doesn't matter in the least what you call it. All I'm saying is that I would support a sort of partially-deferred rendering mode, not one that attempts to capture the entire scene.
Simon F said:I don't see VQTC (2bpp) (at least as implemented in Dreamcast) being adapted over S3TC (4bpp or 8bpp) despite the higher compression rate because the hardware engineers don't really like it. The large LUT/Secondary cache needed to hide latency is a bit unpopular.
Simon F said:I suppose the PVR-TC might be a replacement candidate but for the moment it's only in PowerVR's MBX and, furthermore, the last time I spoke to MS's DX team they weren't keen on newer texture comp modes.
mboeller said:An description of PVR-TC would be nice!
Is it based on this? : http://www.acm.org/sigs/sigmm/MM2000/ep/levkovich/