[Bug 30002] [regression r300g] Menu problem in Tiny and Big

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Sep 4 14:44:21 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=30002

--- Comment #8 from Marek Olšák <maraeo at gmail.com> 2010-09-04 14:44:20 PDT ---
(In reply to comment #7)
> (In reply to comment #1)
> > The handling of textures with a 0 width, height, or depth is an odd corner case
> > in the spec, so it's not too surprising that it's not handled correctly.
> > 
> >      "where ws, hs, and ds are the specified image width, depth, and depth,
> >      and wt, ht, and dt are the dimensions of the texture image internal to
> >      the border. If wt, ht, or dt are less than zero, then the error INVALID
> >      VALUE is generated.
> > 
> >      An image with zero width, height, or depth indicates the null texture.
> >      If the null texture is specified for the level-of-detail specified by
> >      texture parameter TEXTURE BASE LEVEL (see section 3.8.4), it is as if
> >      texturing were disabled."
> > 
> > The last bit is the tricky part.  You have to create the texture but disable
> > texturing on any unit where it is bound.  We could use a piglit test for this
> > corner case.
> 
> Interesting. Should this be part of Gallium's API as well, or should we handle
> it one level up and make these textures illegal in Gallium? Does anybody know
> what Dx does?

Look at R5xx docs and that's pretty much what D3D9 does. If we had to implement
a D3D9 driver, we'd be finished loooong ago. There is a set of samplers and you
bind textures to those samplers. This is the low level function to create a
texture:

http://msdn.microsoft.com/en-us/library/bb174363%28v=VS.85%29.aspx

It doesn't seem 0x0 textures are allowed, or meaningful. However if I had a
choice, I would use this high level function:

http://msdn.microsoft.com/en-us/library/bb172800%28v=VS.85%29.aspx

Which explicitly states that if you request a 0x0 texture, you get a texture of
size 1x1.


Anyway, I was looking into this issue and I am almost sure this is a bug in
st/mesa and that the game doesn't actually create a zero-sized texture. IIRC,
the mipmap setup is broken. In Tiny and Big, I get this failure:

state_tracker/st_texture.c:68:st_texture_create: Assertion `width0 > 0' failed.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the dri-devel mailing list