doom2d.org

Главная база плоских морпехов
It is currently 07 Feb 2025, 10:58

All times are UTC + 3 hours




Post new topic Reply to topic  [ 35 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: 03 Jan 2025, 05:34 
Online
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7038
Location: Владивосток
binarymaster wrote:
glview-Intel Pineview Platform.XML
Поищи Extension verification на вкладке Report и скажи, что пишет.

binarymaster wrote:
Ещё, прилагаю пару логов от glTrace, который ты мне порекомендовал. С его помощью я отлогировал ДФ версий 0.666 (рабочую) и 0.667 (с проблемой).
Какой-то мусор на выходе получился. Я в чате сегодня ночью упоминал, но повторюсь: попробуй GLintercept. Ещё есть прекрасный apitrace.
Нужно в первую очередь узнать, удаётся ли ему хоть раз создать нормальный интеловый контекст. Баг потенциально очень серьёзный, и служит лишь дополнительным аргументом в пользу написания своей обёртки для инициализации OpenGL, о чём я и так уже думал. Что, в свою очередь, приведёт со временем к неизбежному уходу от SDL.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 03 Jan 2025, 11:31 
Offline
User avatar

Joined: 27 Apr 2020, 20:02
Posts: 428
» Баг потенциально очень серьёзный, и служит лишь дополнительным аргументом в пользу написания своей обёртки для инициализации OpenGL, о чём я и так уже думал. Что, в свою очередь, приведёт со временем к неизбежному уходу от SDL.
Баг несерьёзный. Человек сидит на каком-то мусоре и не может осилить отладку чтобы найти причину своих страданий. Это не повод дублировать работу SDL для всех возможных платформ. А этим не для винды, наверное, Пушкин заниматься будет.


Top
 Profile  
 
PostPosted: 03 Jan 2025, 14:53 
Offline
Приколист
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 952
Location: Equestria
Может MinGW сборку стоит собрать с -O0, что бы отмести баг в компиляторе?


Top
 Profile  
 
PostPosted: 04 Jan 2025, 10:01 
Online
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7038
Location: Владивосток
Макс wrote:
Баг несерьёзный. Человек сидит на каком-то мусоре и не может осилить отладку чтобы найти причину своих страданий.
В нашем детском садике таких слов не знают. Мы стремимся поддерживать как можно больше машин и платформ, включая старые. А отлаживать графику в принципе затруднительно, потому что обычные инструменты типа gdb для этого подходят мало, а необходимые ещё знать надо. Я Стасу выше сказал, что надо сделать и чем - надеюсь, он откликнется.

Макс wrote:
Это не повод дублировать работу SDL для всех возможных платформ. А этим не для винды, наверное, Пушкин заниматься будет.
Я не стремлюсь избавиться от SDL, однако он однозначно переоценён. Там до сих пор умудряются находить косяки в старом коде, например, что говорит само за себя и ставит под вопрос степень отлаженности всей библиотеки как таковой. Грузить расширения OpenGL должным образом (как, скажем, libepoxy) он и так не умеет. Ну и его политика обратной совместимости идёт несколько вразрез с нашими целями.

DeaDDooMER wrote:
Может MinGW сборку стоит собрать с -O0, что бы отмести баг в компиляторе?
Если я правильно понимаю, то она и сейчас без оптимизаций собирается. А вот на что бы я действительно поставил, так это на отличия в заголовках. MSVC использует оригинальные, которые практически не менялись со времён NT4, когда OpenGL 1.1 появился в Windows. Тогда как mingw-w64 использует те, что поставляет Khronos. Мне думается, что именно они могут являться причиной бага как в wglinfo, так и в SDL, где используется свой вариант на их основе: https://github.com/libsdl-org/SDL/blob/SDL2/include/SDL_opengl.h

Стас, а ты можешь как-нибудь прогнать wglinfo.cpp через препроцессоры обоих компиляторов, без непосредственной сборки, и вытащить получившийся исходник?
И ещё приведи, пожалуйста, содержимое узла HKLM:/SOFTWARE/Microsoft/Windows NT/CurrentVersion/OpenGLDrivers и всей ветки от него на своём несчастном ноуте.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 04 Jan 2025, 20:26 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1440
Location: Москва
Чёрный Думер wrote:
Поищи Extension verification на вкладке Report и скажи, что пишет.
Вот:
Attachment:
opengl report.rtf [4.14 KiB]
Downloaded 78 times

В конце отчёта есть строка "Extension verification:", но после неё пусто. Версия программы 7.5 запускается и вылетает.

Чёрный Думер wrote:
Какой-то мусор на выходе получился. Я в чате сегодня ночью упоминал, но повторюсь: попробуй GLintercept. Ещё есть прекрасный apitrace.
Нужно в первую очередь узнать, удаётся ли ему хоть раз создать нормальный интеловый контекст.
Я попробую осилить, но поскольку не шарю в этом, было бы лучше алгоритм действий, который от меня требуется.

Чёрный Думер wrote:
Стас, а ты можешь как-нибудь прогнать wglinfo.cpp через препроцессоры обоих компиляторов, без непосредственной сборки, и вытащить получившийся исходник?
Даже не представляю себе, как это делается. Учитывая, что ты это говоришь, можешь попробовать форкнуть репу на гитхабе, и поиграть с параметрами сборки. :)

Чёрный Думер wrote:
И ещё приведи, пожалуйста, содержимое узла HKLM:/SOFTWARE/Microsoft/Windows NT/CurrentVersion/OpenGLDrivers и всей ветки от него на своём несчастном ноуте.
Пожалуйста:
Code:
64-bit:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\Intel
    dll    REG_SZ    iglicd64
    Version    REG_DWORD    0x2
    DriverVersion    REG_DWORD    0x1
    Flags    REG_DWORD    0x3

32-bit:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\Intel
    dll    REG_SZ    iglicd32
    Version    REG_DWORD    0x2
    DriverVersion    REG_DWORD    0x1
    Flags    REG_DWORD    0x3

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 04 Jan 2025, 21:43 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1440
Location: Москва
Чёрный Думер wrote:
Я в чате сегодня ночью упоминал, но повторюсь: попробуй GLintercept.
Разработчик wglinfo тем временем запушил ещё один коммит для вывода информации о сборке программы и о системе, и он у меня сломал определение ICD на сборке MSVC. :shock:

Скачал GLintercept, прогнал через него свежую сборку MinGW (по прежнему не рабочую), а также две сборки MSVC, свежую сломанную (fdb0edf) и старую рабочую (10a16fd). Логи прилагаю.

Рабочее:
Attachment:
wglinfo-msvc-10a16fd-gliInterceptLog.txt [2.43 KiB]
Downloaded 80 times
Attachment:
wglinfo-msvc-10a16fd-gliLog.txt [849 Bytes]
Downloaded 78 times

Нерабочее:
Attachment:
wglinfo-msvc-fdb0edf-gliInterceptLog.txt [1.79 KiB]
Downloaded 80 times
Attachment:
wglinfo-msvc-fdb0edf-gliLog.txt [722 Bytes]
Downloaded 83 times

Attachment:
wglinfo-mingw-gliInterceptLog.txt [1.79 KiB]
Downloaded 79 times
Attachment:
wglinfo-mingw-gliLog.txt [722 Bytes]
Downloaded 79 times

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 04 Jan 2025, 23:24 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1440
Location: Москва
Макс wrote:
Баг несерьёзный. Человек сидит на каком-то мусоре и не может осилить отладку чтобы найти причину своих страданий. Это не повод дублировать работу SDL для всех возможных платформ. А этим не для винды, наверное, Пушкин заниматься будет.
В общем, копаться в SDL не придётся. Мы нашли источник проблемы, всё дело в одной строке из манифеста.

Если из него убрать строку, декларирующую совместимость с Windows 10/11, то программа на моём железе начинает определять OpenGL ICD корректно:
Code:
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
И наоборот, если этот элемент добавить в манифест, аппаратный ICD перестаёт определяться, и откатывается на программную отрисовку. Почему так происходит? Проблема в системе или в видео драйверах? Ответов на эти вопросы у меня пока нет.

Сообщил об этом также в репозитории:
https://github.com/gkv311/wglinfo/issues/2#issuecomment-2571401318

ЧД меня также попросил приложить версию драйверов и ссылку на их скачивание, его просьбу удовлетворяю:

Intel(R) Graphics Media Accelerator 3150
Версия 8.15.10.2567, выпуск 10/30/2011

- https://www.driverscape.com/download/intel%28r%29-graphics-media-accelerator-3150 (там есть и 32-бит, и 64-бит)
- https://web.archive.org/web/20250104202957if_/https://cdn.driverscape.com/display/intel_gma3150_8.15.10.2567_ntx64.exe?access_key=1736022545-ewQm1SsPgbDP%2BFxcU0IBcdbgEOtnE1qA7BiWOYsy5to%3D (прямая на 64-бита)

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 04 Jan 2025, 23:30 
Online
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7038
Location: Владивосток
binarymaster wrote:
Почему так происходит? Проблема в системе или в видео драйверах? Ответов на эти вопросы у меня пока нет.
Я тебе уже писал об этом сегодня в чате, но на всякий случай повторюсь: загрузи по отдельности рабочую и битую копии одной и той же сборки, и через ProcessExplorer или что-нибудь подобное вытащи списки загруженных DLL вместе с путями. У меня ощущение, что оно просто может драйвер Intel'а не находить по какой-нибудь причине, связанной с переключением библиотек ради совместимости.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 05 Jan 2025, 00:38 
Offline
User avatar

Joined: 27 Apr 2020, 20:02
Posts: 428
» Ну и его политика обратной совместимости идёт несколько вразрез с нашими целями.
Не сказал бы. SDL3 всё так же поддерживает XP. И он явно упоминает возможность сочетать в проекте билды с одной мажорной версии к другой, в случае если отвалились нужные бэкенды в более новых версиях


Top
 Profile  
 
PostPosted: 05 Jan 2025, 01:35 
Offline
Приколист
User avatar

Joined: 24 Jan 2012, 15:18
Posts: 1440
Location: Москва
Чёрный Думер wrote:
Я тебе уже писал об этом сегодня в чате, но на всякий случай повторюсь: загрузи по отдельности рабочую и битую копии одной и той же сборки, и через ProcessExplorer или что-нибудь подобное вытащи списки загруженных DLL вместе с путями. У меня ощущение, что оно просто может драйвер Intel'а не находить по какой-нибудь причине, связанной с переключением библиотек ради совместимости.
Долго втыкал в Process Explorer, чтобы понять, как им перехватывать события, но потом понял, что ты скорее имел ввиду Process Monitor. :)
Attachment:
Procmon-logs.7z [154.86 KiB]
Downloaded 84 times

_________________
by Stas'M


Top
 Profile  
 
PostPosted: 05 Jan 2025, 22:03 
Online
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7038
Location: Владивосток
binarymaster wrote:
Долго втыкал в Process Explorer, чтобы понять, как им перехватывать события, но потом понял, что ты скорее имел ввиду Process Monitor. :)
Нет, я имел в виду именно ProcExp, потому что речи о перехвате событий не было. :). Там можно просто врубить View / Show Lower Pane, и появится панель внизу с перечислением всех загруженных DLL процесса.
Однако это всё уже не имеет смысла. Как выяснилось при гуглеже по фразе "windows opengl intel manifest compatibility", наша проблема является давней и уже многим известной.

https://stackoverflow.com/questions/34676697/embedding-manifest-into-the-application-binary-breaks-opengl-2
https://winraid.level1techs.com/t/get-your-intel-hd3000-sandy-bridge-windows-10-64bit-drivers-here/40044/22
https://community.khronos.org/t/i-have-opengl-3-1-but-kivy-says-that-i-have-only-1-1/103980/6

https://forum.zdoom.org/viewtopic.php?f=50&t=67994&p=1144125#p1144125 OpenGL Driver Not Accelerated! [Resolved]
- тут советуют попробовать поставить драйвера от Windows 7
https://forum.drdteam.org/viewtopic.php?f=24&t=6696&p=57337#p57337 Win10 being listed in the manifest breaks Intel drivers?
https://forum.drdteam.org/viewtopic.php?t=7298 wtfi.exe - Intel GPU + Windows 10

Похожие сообщения об этом же косяке в других программах:
https://discourse.paraview.org/t/opengl-not-supported-in-windows-10-and-intel-hd-graphics-card-glew-could-not-be-intialized-missing-gl-version/2701
https://forum.defold.com/t/insufficient-opengl-support-error-solved/70164
https://forum.defold.com/t/insufficient-opengl-support/71253
https://forum.kicad.info/t/kicad-6-0-opengl-problem/32900

И даже существует отдельный проект, посвящённый его исправлению: https://github.com/pal1000/save-legacy-intel-graphics
Там же в ReadMe есть и описание того, что на самом деле происходит:
Quote:
Why we have this issue

In order to fix any problem we must understand its root cause. In the early days of Windows 10 development Microsoft decided to change the Windows major version from 6 to 10. However Microsoft thought it is enough to provide software developers APIs to advertise Windows 10 compatibility. Programs that advertise compatibility get current OS version when they ask for it, others get the old 6.3 format. When implementing this Microsoft forgot about dynamic link libraries or maybe was unable to do anything about them. There is no similar mechanism(s) for DLLs as far as I know, they always inherit Windows version received by the programs that loads them. As a result of this, things go south when a program advertising Windows 10 compatibility loads a DLL that is not ready for current Windows 10 major version. Anything can happen but most likely the DLL just unloads right away. Intel OpenGL driver for iGPU generations listed above is the perfect example and as a result it unloads immediately.

Вообще, почти наверняка это можно поправить ещё одним способом: воткнуть хук уровня процесса на GetVersionEx() перед созданием OpenGL-контекста, а затем его тут же снять. Но я не уверен, что это того стоит, как и в безотказности такого решения. Однако всё равно повесил issue с этим предложением в репозиторий. Может быть, получится обсудить предметно.

Ещё есть иллюстрированная инструкция по обходу данного западла: https://gist.github.com/rb-dahlb/26f316c5b6089807a139fc44ee69f0d1

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 06 Jan 2025, 21:42 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7730
Location: \\HULK
Как всё-таки приятно, когда в баге виноват не ты, а индусы из микрософта...

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 06 Jan 2025, 21:49 
Offline
User avatar

Joined: 27 Apr 2020, 20:02
Posts: 428
Jabberwock wrote:
Как всё-таки приятно, когда в баге виноват не ты, а индусы из микрософта...

Интела*


Top
 Profile  
 
PostPosted: 08 Jan 2025, 06:16 
Offline
Site Admin
User avatar

Joined: 17 Oct 2009, 23:43
Posts: 7730
Location: \\HULK
Макс wrote:
Интела*

Винтела*

_________________
И неважно, что нет морей на Марсе, каждый морпех носит море в сердце.


Top
 Profile  
 
PostPosted: 16 Jan 2025, 23:47 
Offline
Шерлок Холмс
User avatar

Joined: 19 Jun 2019, 23:28
Posts: 435
Location: Equestrian Wasteland.
Когда я последний раз запускал на нетбуке с Intel GMA 3150 ДФ из под шинды, ДФ работал. Если я запущу ДФ там же, но на линупсе, я уверен, что тоже будет работать.
Выкинуть десятку с нетбука, поставить семёрку или линупс и не пытаться устанавливать десятку больше, вот и всё решение проблемы. Нетбуки с подобными встройками не предполагают, что на них можно будет поставить что-то выше х32 семёры с гарантией работы. Чисто технически это не является багом, имхо.

_________________
aka TerminalHash.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 35 posts ]  Go to page Previous  1, 2

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2007