Bug 103006

Summary: [OpenGL CTS] [HSW] KHR-GL45.vertex_attrib_binding.basic-inputL-case1
Product: Mesa Reporter: Kenneth Graunke <kenneth>
Component: Drivers/DRI/i965Assignee: Plamena Manolova <plamena.manolova>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: apuentes
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 102590    

Description Kenneth Graunke 2017-09-27 07:30:18 UTC
KHR-GL45.vertex_attrib_binding.basic-inputL-case1 fails on Haswell:

    Data is: 0 0 6 0.0078125, data should be: 0 0 0 0, index is: 6

Antia fixed this for Gen8+ here:
https://bugs.freedesktop.org/show_bug.cgi?id=97287

Presumably we need to backport something similar to the Gen7/7.5 code...
Comment 1 Antia Puentes 2018-01-31 15:53:10 UTC
Andrés sent a patch to fix this bug: "i965: perform 2 uploads with dual slot *64*PASSTHRU formats on gen<8"

https://patchwork.freedesktop.org/patch/201383/
Comment 2 Andrés Gómez García 2018-01-31 21:09:37 UTC
Fixed in master with:

commit 5a7aba2e0a7fb3414a94d04d5970a2ed10c1f63e
Author: Andres Gomez <agomez@igalia.com>
Date:   Mon Jan 29 18:25:30 2018 +0200

    i965: perform 2 uploads with dual slot *64*PASSTHRU formats on gen<8
    
    The emission of vertex attributes corresponding to dvec3 and dvec4
    vertex shader input variables was not correct when the <size> passed
    to the VertexAttribL* commands was <= 2.
    
    In 61a8a55f557 ("i965/gen8: Fix vertex attrib upload for dvec3/4
    shader inputs"), for gen8+ we needed to determine if the attrib was
    dual slot to emit 128 or 256-bit, independently of the VAO size.
    
    Similarly, for gen < 8 we also need to determine whether the attrib is
    dual slot to force the emission of 256-bits through 2 uploads.
    
    Additionally, we make use of the ISL_FORMAT_R32_FLOAT format in this
    second upload to fill these unspecified components with zeros, as we
    also do for gen8+.
    
    Fixes the following test on Haswell:
    KHR-GL46.vertex_attrib_binding.basic-inputL-case1
    
    v2: Added more inline comments to explain why we are using
        ISL_FORMAT_R32_FLOAT and its consequences, as requested by
        Alejandro and Antía.
    
    Fixes: 75968a668e4 ("i965/gen7: expose OpenGL 4.2 on Haswell when
    supported")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103006
    Cc: Alejandro Piñeiro <apinheiro@igalia.com>
    Cc: Juan A. Suarez Romero <jasuarez@igalia.com>
    Cc: Antia Puentes <apuentes@igalia.com>
    Cc: Rafael Antognolli <rafael.antognolli@intel.com>
    Cc: Kenneth Graunke <kenneth@whitecape.org>
    Signed-off-by: Andres Gomez <agomez@igalia.com>
    Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
    Reviewed-by: Antia Puentes <apuentes@igalia.com>
    Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.