[Piglit] [PATCH] Allow testing of generic compressed texture formats with 1D/3D textures

Anuj Phogat anuj.phogat at gmail.com
Tue Aug 21 16:04:31 PDT 2012


On Tue, Aug 21, 2012 at 3:15 PM, Brian Paul <brianp at vmware.com> wrote:
> On 08/21/2012 04:11 PM, Anuj Phogat wrote:
>>
>> On Tue, Aug 21, 2012 at 12:26 PM, Brian Paul<brianp at vmware.com>  wrote:
>>>
>>>
>>> On 08/21/2012 01:12 PM, Anuj Phogat wrote:
>>>>
>>>>
>>>> The generic texture formats are allowed in the<internalformat>
>>>> parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D,
>>>> and CopyTexImage2D functions.
>>>>
>>>> Signed-off-by: Anuj Phogat<anuj.phogat at gmail.com>
>>>> ---
>>>>    tests/texturing/copyteximage.c |    8 --------
>>>>    1 files changed, 0 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/tests/texturing/copyteximage.c
>>>> b/tests/texturing/copyteximage.c
>>>> index a0bf228..c8a8492 100644
>>>> --- a/tests/texturing/copyteximage.c
>>>> +++ b/tests/texturing/copyteximage.c
>>>> @@ -328,14 +328,6 @@ supported_format(GLenum format)
>>>>    static bool
>>>>    supported_target_format(GLenum target, GLenum format)
>>>>    {
>>>> -       /* all the compressed formats we test (so far) are 2D only */
>>>> -       if (is_compressed_format(format)&&
>>>> -           (target == GL_TEXTURE_1D ||
>>>> -            target == GL_TEXTURE_1D_ARRAY ||
>>>> -            target == GL_TEXTURE_3D ||
>>>> -            target == GL_TEXTURE_RECTANGLE)) {
>>>> -               return false;
>>>> -       }
>>>>          if (is_depth_format(format)&&   target == GL_TEXTURE_3D) {
>>>>                  return false;
>>>>          }
>>>
>>>
>>>
>>> I guess this is what we want to do, but with NVIDIA's driver I'm seeing
>>> a ton of failures both with and without this patch.  I don't have time
>>> right
>>> now to dig into it but it looks like some combinations of texture targets
>>> and internal formats are generating errors.
>>>
>>> Is that something you can investigate?
>>
>> Following cases are failing on NVIDIA proprietary drivers (OpenGL
>> 3.3.0 NVIDIA 295.53 ):
>> - GL_TEXTURE_1D with all internal formats. No GL error is generated.
>>    All these cases pass on i965 drivers. Output color is:
>>    0.000000 0.000000 0.000000 1.000000 with all formats.
>>    Seems like 1D textures are completely broken on NVIDIA in
>>    glCopyTexImage1D().
>
>
> It looks like a line is being drawn to test the texture.  Maybe the
> glReadPixels is missing the line?  Maybe try drawing a quad instead.
>
Yeah. Looks like NVIDIA is drawing the line considering vertex coordinates
as top edge of the line. So glReadPixels is missing the line by one pixel.
Probing one pixel below gets the expected output.
Also, drawing and probing a unit height quad makes the failing cases pass.
I'll follow up with updated patch including these changes.

>> - GL_TEXTURE_{1D, 2D}_ARRAY with all internal formats.
>>    GL_INVALID_ENUM is generated in glCopyTexSubImage{2D, 3D}
>>    respectively. As per OpenGL spec, this error is generated only in
>>    case of invalid texture target in glCopyTexSubImage{2D, 3D}.
>>    But, GL_TEXTURE_{1D, 2D}_ARRAY are allowed texture
>>    targets. So, it seems like array textures are not handled correctly
>>    by NVIDIA in glCopyTexSubImage{2D, 3D}.
>
>
> Yeah, that sounds like a real bug.
>
> -Brian


More information about the Piglit mailing list