On Sat, Nov 23, 2013 at 10:23 PM, Mark Mueller <markkmuel...@gmail.com> wrote: > > > > On Sat, Nov 23, 2013 at 2:26 AM, Marek Olšák <mar...@gmail.com> wrote: >> >> If there is actually hardware support, it's okay to add those formats. >> See comments below. >> >> On Sat, Nov 23, 2013 at 3:59 AM, Mark Mueller <markkmuel...@gmail.com> >> wrote: >> > How about let's forget the whole concept of GPU loading for a moment as >> > that >> > is only clouding the issue. As you said: "the mesa_* formats have one >> > purpose: to be used as OpenGL textures...." When I read the OGL spec for >> > glTexImage2D it lists GL_BGR as a format. Yet looking at mesa_* formats >> > there is only one BGR format represented: MESA_FORMAT_BGR888. There are >> > 8 >> > other valid OGL BGR textures that don't have MESA_FORMATs while all of >> > the >> > RGBs ones _are_ all there? ie. these are the OGL BGR formats that are >> > missing: >> > >> > MESA_FORMAT_BGR_INT8, >> > MESA_FORMAT_BGR_UINT8, >> > MESA_FORMAT_BGR_INT16, >> > MESA_FORMAT_BGR_UINT16, >> > MESA_FORMAT_BGR_FLOAT16, >> > MESA_FORMAT_BGR_INT32, >> > MESA_FORMAT_BGR_UINT32, >> > MESA_FORMAT_BGR_FLOAT32 >> >> Our hardware doesn't support these formats, because they are not >> aligned to a power-of-two number of components. If your hardware can >> do them, it's okay to add them. >> >> > >> > There are also RGB, RGBA, and BGRA formats missing. Completeness seems >> > like >> > justification enough for their inclusion: >> > >> > /* Red Green Blue */ >> > MESA_FORMAT_RGB233_REV, >> >> Same as above. Also please don't use _REV, use BGR332 instead. > > > Definitely better. > >> >> >> > MESA_FORMAT_RGB101111_REV, >> >> This format doesn't exist. I don't think you can specify it in glTexImage. > > > The proposed new RGB ones are based on this statement in the spec: > "GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, > GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, > GL_UNSIGNED_SHORT_5_6_5_REV, or GL_UNSIGNED_INT_10F_11F_11F_REV, and format > is not GL_RGB."
Please read the spec carefully. 1) UNSIGNED_BYTE_3_3_2 is RGB332, and UNSIGNED_BYTE_2_3_3_REV is BGR233. R has always 3 bits. 2) UNSIGNED_INT_10F_11F_11F_REV is already equivalent to MESA_FORMAT_R11_G11_B10_FLOAT. The non-float version you want to add doesn't exist. > > >> >> >> > >> > /* Red Green Blue Alpha */ >> > MESA_FORMAT_RGBA1010102, >> >> This one might be useful. >> >> > MESA_FORMAT_RGBA2101010_REV, >> >> I don't think you can have R with 2 bits. >> >> > MESA_FORMAT_RGBA5999_REV, >> >> This format doesn't exist either. >> >> > MESA_FORMAT_RGBA4444, >> > MESA_FORMAT_RGBA4444_REV, >> >> These might be useful. >> >> > MESA_FORMAT_RGBA1555_REV, >> >> I don't think you can have R with 1 bit. >> >> > >> > /* Blue Green Red Alpha */ >> > MESA_FORMAT_BGRA_INT8, >> > MESA_FORMAT_BGRA_INT8_REV, >> > MESA_FORMAT_BGRA_UINT8, >> > MESA_FORMAT_BGRA_INT16, >> > MESA_FORMAT_BGRA_UINT16, >> > MESA_FORMAT_BGRA_FLOAT16, >> > MESA_FORMAT_BGRA_INT32, >> > MESA_FORMAT_BGRA_UINT32, >> > MESA_FORMAT_BGRA_FLOAT32, >> > MESA_FORMAT_BGRA4444, >> > MESA_FORMAT_BGRA4444_REV, >> > MESA_FORMAT_BGRA5551, >> >> All these look good. >> >> > MESA_FORMAT_BGRA1555_REV, >> >> I don't think you can have B with 1 bit. >> >> > MESA_FORMAT_BGRA1010102, >> >> This one looks good. >> >> > MESA_FORMAT_BGRA2101010_REV, >> >> I don't think you can have B with 2 bits. >> >> > MESA_FORMAT_BGRA5999_REV, >> >> This one doesn't exist either and cannot be specified by TexImage. > > > BGRAs and RGBAs were based on this from the spec: > "GL_INVALID_OPERATION is generated if type is one of > GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, > GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, > GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, > GL_UNSIGNED_INT_10_10_10_2, GL_UNSIGNED_INT_2_10_10_10_REV, or > GL_UNSIGNED_INT_5_9_9_9_REV, and format is neither GL_RGBA nor GL_BGRA." Nowhere can I see that B has 1 or 2 bits. Also the occurence of GL_UNSIGNED_INT_5_9_9_9_REV seems to be a spec bug, because it should be GL_RGB (the 5 bits contain a shared exponent). Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev