From: Brian P. <br...@va...> - 2000-11-14 01:14:58
|
Klaus Niederkrueger wrote: > > Over the last weeks I came to the following conclusion: > Mesa in software-mode is unusable for many applications (i.e. games and such). > It is much too slow and the idea I had was to optimize the textured-triangle functions, which for example in the case of mipmapping compute for every drawn pixel a log-function. > > Though optimizing may well be possible it leads to a lot of trouble: The code grows a lot in size and it is more difficult to maintain (e.g. you have texturing mode for minimizing, for maximizing, for perspective_correction and for no perspective correction etc. only these three parameters lead to 16 possibilities and if you take GL_RGB, GL_RGBA, GL_BLEND, GL_DECAL, GL_REPLACE everything is much worse). > > My idea is therefore the following: Check for example at start-time for an environment-variable MESA_FAST_MODE or something and if it is set, all texturing functions are overridden by GL_NEAREST for max and GL_NEAREST_MIPMAP_NEAREST for minimizing pixels, possibly supporting only two color-depths (16 bits and 24 or 32) and optimizing the functions for these screen-settings. I know that this mode would not be OpenGL-compliant, but since it would be optional it should be o.k. > > This way in Linux you would have a 3D-gl that would be universally usable and would then be used by all 3d-applications (in contrast to many programs now like quake, crystal-space etc. that use their own software-rendering or OpenGL-Hardware). > > What do you think? I'm hesitant to go down that path. Over the years it's been tempting to take short-cuts in Mesa by trading off conformance for speed but I've never done so. I'm afraid that if we start doing so we'll wind up with a mess. I've also found that if you're careful you can accomplish good optimizations while maintaining conformance. I think the kinds of changes you suggest could be more easily done in the application itself. That way the app might run faster on any OpenGL implementation. -Brian |