<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>33387</bug_id>
          
          <creation_ts>2017-04-17 22:55:28 +0300</creation_ts>
          <short_desc>Запаковать nvidia_icd.json для работы Vulkan API</short_desc>
          <delta_ts>2024-08-29 12:26:26 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>nvidia_glx_common</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Денис Назаров">nenderus</reporter>
          <assigned_to name="Sergey V Turchin">zerg</assigned_to>
          <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>163297</commentid>
    <comment_count>0</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-04-17 22:55:28 +0300</bug_when>
    <thetext>Для работы Vulkan API на проприетарных драйверах NVIDIA требуется упаковать файл nvidia_icd.json из установщика драйверов по пути /usr/share/vulkan/icd.d

Наверное логичнее всего упаковать файл в пакет nvidia_glx_common</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163312</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-04-18 14:18:08 +0300</bug_when>
    <thetext>(В ответ на комментарий №0)
&gt; Наверное логичнее всего упаковать файл в пакет nvidia_glx_common
В нем не бывает ничего из NVIDIA.

Меня больше интересует, можно ли nvidia_icd.json переименовать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163314</commentid>
    <comment_count>2</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-04-18 14:41:11 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Меня больше интересует, можно ли nvidia_icd.json переименовать.
Да, можно. Главное, что бы расширение было .json</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163317</commentid>
    <comment_count>3</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-04-18 15:54:25 +0300</bug_when>
    <thetext>Ну, я уже. http://webery.altlinux.org/task/181884</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163331</commentid>
    <comment_count>4</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-04-18 21:21:20 +0300</bug_when>
    <thetext>nvidia_glx_src_375.39-375.39-alt169 -&gt; sisyphus:

* Tue Apr 18 2017 Sergey V Turchin &lt;zerg@altlinux&gt; 375.39-alt169
- package nvidia_icd.json (ALT#33387)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163644</commentid>
    <comment_count>5</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:11:31 +0300</bug_when>
    <thetext>К сожалению файл должен быть в единственном экземпляре. Сейчас при обновлении драйверов создаётся ещё 1 файл. При этом всё перестаёт работать с ошибкой инициализации (как в игрушках, например в Dota 2, так и при проверке через консольный vulkaninfo). Проблема точно в нескольких версиях этого файла, т.к. если удалить все предыдущие драйвера и создать копию файла с другим именем - точно такая же ошибка инициализации...

Может стоит сделать по примеру файла libGL.so как в самих драйверах? Т.е. хранить где-то в отдельной папке для каждой версии драйвера (где он есть), а /usr/share/vulkan/icd.d/nvidia_icd.json будет тупо симлинком на нужную версию?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163645</commentid>
    <comment_count>6</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-12 11:16:44 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Может стоит сделать по примеру файла libGL.so как в самих драйверах?
По возможности избегаю этого. Только в крайнем случае, если вариантов не будет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163646</commentid>
    <comment_count>7</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:19:43 +0300</bug_when>
    <thetext>Ну тогда может стоит либо:

1) при установке нового драйвера проверять, что если файл есть, то удалять, а новый будет уже из пакета. Хотя наверное способ очень костыльный

2) перенести его всё же в nvidia_glx_common (он же всегда в единственном экземпляре).

Чёт больше ничего в голову не приходит даже.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163647</commentid>
    <comment_count>8</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-12 11:20:36 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; К сожалению файл должен быть в единственном экземпляре. Сейчас при обновлении
&gt; драйверов создаётся ещё 1 файл. При этом всё перестаёт работать с ошибкой
&gt; инициализации (как в игрушках, например в Dota 2, так и при проверке через
&gt; консольный vulkaninfo
Как увидеть?
$ rpm -qf `which vulkaninfo`
vulkan-1.0.37-alt0.3.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163648</commentid>
    <comment_count>9</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-12 11:22:12 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; 1) при установке нового драйвера проверять, что если файл есть, то удалять, а
&gt; новый будет уже из пакета. Хотя наверное способ очень костыльный
Добавлять новые виды костылей нет смысла.

&gt; 2) перенести его всё же в nvidia_glx_common (он же всегда в единственном
&gt; экземпляре).
Уже отвечал в #1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163649</commentid>
    <comment_count>10</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:24:48 +0300</bug_when>
    <thetext>&gt; Как увидеть?
&gt; $ rpm -qf `which vulkaninfo`
&gt; vulkan-1.0.37-alt0.3.x86_64
Установить пакет vulkan, nvidia_glx_375.39 и nvidia_glx_375.66
Далее в консоли vulkaninfo

Ну или в стиме поставить Dota 2 (она бесплатная) и в параметрах запуска написать &quot;-Vulkan&quot; (без кавычек)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163650</commentid>
    <comment_count>11</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:27:28 +0300</bug_when>
    <thetext>Хотя 2 драйвера можно и не ставить, достаточно только последнего скажем, затем в /usr/share/vulkan/icd.d создать копию 375.66_nvidia_icd.json с другим именем.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163651</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-12 11:31:25 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Установить пакет vulkan, nvidia_glx_375.39 и nvidia_glx_375.66
$ rpm -qf /usr/share/vulkan/icd.d/*
nvidia_glx_375.39-375.39-alt169.x86_64
nvidia_glx_375.66-375.66-alt170.x86_64
$

&gt; Далее в консоли vulkaninfo
Что плохого искать в портянке, которую он выдает?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163652</commentid>
    <comment_count>13</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:33:38 +0300</bug_when>
    <thetext>&gt; Что плохого искать в портянке, которую он выдает?
Странно. Должен вместо портянки после указания списка всех найденных .json выдавать VK_ERROR_INITIALIZATION_FAILED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163653</commentid>
    <comment_count>14</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:35:45 +0300</bug_when>
    <thetext>Если выдаёт портянку - значит всё работает. Может только для GTX 1070 такой прикол...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163654</commentid>
    <comment_count>15</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-12 11:38:22 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; Если выдаёт портянку - значит всё работает. Может только для GTX 1070 такой
&gt; прикол...
Или vulkan другой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163655</commentid>
    <comment_count>16</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 11:41:48 +0300</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; Или vulkan другой.
Точно, у меня же из своего (уже удалённого) пакета. Тогда поэкспериментирую (благо есть ещё 2-й комп, там правда тоже 1070, но всё же).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163665</commentid>
    <comment_count>17</comment_count>
    <who name="Денис Назаров">nenderus</who>
    <bug_when>2017-05-12 21:12:18 +0300</bug_when>
    <thetext>Не, не работает:

[nenderus@nenderus-pc ~]$ vulkaninfo 
===========
VULKAN INFO
===========

Vulkan API Version: 1.0.37

INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_core_validation.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_threading.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_swapchain.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_image.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_core_validation.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_threading.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_swapchain.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_image.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /home/nenderus/.local/share/vulkan/implicit_layer.d/steamoverlay_i386.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /home/nenderus/.local/share/vulkan/implicit_layer.d/steamoverlay_x86_64.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/375.66_nvidia_icd.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/375.39_nvidia_icd.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/375.66_nvidia_icd.json, version &quot;1.0.0&quot;
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/375.39_nvidia_icd.json, version &quot;1.0.0&quot;

Instance Extensions:
====================
Instance Extensions     count = 5
        VK_KHR_surface                      : extension revision 25
        VK_KHR_xcb_surface                  : extension revision  6
        VK_KHR_xlib_surface                 : extension revision  6
        VK_EXT_debug_report                 : extension revision  4
        VK_NV_external_memory_capabilities  : extension revision  1




/usr/src/RPM/BUILD/vulkan/demos/vulkaninfo.c:520: failed with VK_ERROR_INITIALIZATION_FAILED

[nenderus@nenderus-pc ~]$ rpm -qf `which vulkaninfo`
vulkan-1.0.37-alt0.3

[nenderus@nenderus-pc ~]$ rpm -qf /usr/share/vulkan/icd.d/*
nvidia_glx_375.39-375.39-alt169
nvidia_glx_375.66-375.66-alt170

Видимо всё же на 1070 такое (или вообще на всей 10-й серии)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163689</commentid>
    <comment_count>18</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2017-05-16 10:16:44 +0300</bug_when>
    <thetext>Работает у меня на Сизифе.
На p8 так же не работает(свежий nvidia, GeForce GT 610 10de:104a).
Тут и Mesa может фигурировать. Нужно точную причину выяснять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250823</commentid>
    <comment_count>19</comment_count>
    <who name="Sergey V Turchin">zerg</who>
    <bug_when>2024-08-29 12:26:26 +0300</bug_when>
    <thetext>(Ответ для Денис Назаров на комментарий #0)
&gt; Для работы Vulkan API на проприетарных драйверах NVIDIA требуется упаковать
&gt; файл nvidia_icd.json из установщика драйверов по пути /usr/share/vulkan/icd.d
Упакован.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>