Bug 103006 - [OpenGL CTS] [HSW] KHR-GL45.vertex_attrib_binding.basic-inputL-case1
Summary: [OpenGL CTS] [HSW] KHR-GL45.vertex_attrib_binding.basic-inputL-case1
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Plamena Manolova
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 102590
  Show dependency treegraph
 
Reported: 2017-09-27 07:30 UTC by Kenneth Graunke
Modified: 2018-01-31 21:09 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

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.