Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 954 - некорректная отрисовка окна 3D документа   Make a simular bug
Summary: некорректная отрисовка окна 3D документа
Status: CLOSED LATER
Alias: None
Product: КОМПАС 3D
Classification: Поддержка проектов
Component: Тестирование (show other bugs)
Version: v10
Hardware: PC ALT Linux
: P4 major
Target Milestone: ---
Assignee: BUGS@Etersoft
QA Contact: Денис Баранов
URL: http://winehq.org.ru/GL
Whiteboard:
Keywords: АСКОН
Depends on: 2670 3132
Blocks: 753 1196
  Show dependency treegraph
 
In work:
Reported: 2007-12-14 16:18 MSK by Виталий Булгаков
Modified: 2024-03-04 14:58 MSK (History)
9 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания: 2010-01-10


Attachments
Показывает затенение экрана и проблемы с обновлением (262.91 KB, image/jpeg)
2010-11-18 03:58 MSK, Анатолий Лютин
Details
Показывает инвертирование цветов содержимого окна просмотра 3d документов (272.49 KB, image/jpeg)
2010-11-18 03:58 MSK, Анатолий Лютин
Details
меню (92.63 KB, image/png)
2010-11-18 03:58 MSK, Александр Пликус
Details
деталь (96.14 KB, image/png)
2010-11-18 03:58 MSK, Александр Пликус
Details
окно с деталью (181.87 KB, image/png)
2010-11-18 03:58 MSK, Александр Пликус
Details
Тест для воспроизведения проблемы. (26.75 KB, application/x-ms-dos-executable)
2010-11-18 03:58 MSK, Vitaly Lipatov
Details
скрин (85.88 KB, image/png)
2010-11-18 03:58 MSK, Денис Баранов
Details
Тест 3D с MDI (35.40 KB, application/octet-stream)
2010-11-18 03:58 MSK, Vitaly Lipatov
Details
Исходный код теста на C++ (10.78 KB, text/plain)
2010-11-18 03:58 MSK, Vitaly Lipatov
Details
Linux text for GL with GDI drawing (2.36 KB, text/plain)
2010-11-18 03:58 MSK, Vitaly Lipatov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Виталий Булгаков 2007-12-14 16:18:54 MSK
Установлен КОМПАС 3D V9SP1 Demo. Файл - Создать - Деталь - окно детали залито черным либо сразу, либо при наведении указателя (ловушки) на прямоугольник любой конструктивной плоскости.
Comment 1 Анатолий Лютин 2008-03-18 21:21:31 MSK
Пока выявлены две глобальные проблемы в этой области:
1. Экран залит чёрным цветом, но при наведении курсора подсвечивается контур поддетали.

2. Очень часто бывает, что экран просмотра 3d документа перестаёт обновляться. То есть берём деталь, она отображается корректно (и экран тоже), а вот когда начинаем вертеть её - она меняет цвет, экран на каждое движение мышки мигает и остаётся фантом предыдущей детали, приэтом он перерисовывается в инверсионных цветах.
Comment 2 Анатолий Лютин 2008-03-18 21:26:55 MSK
Created attachment 327 [details]
Показывает затенение экрана и проблемы с обновлением
Comment 3 Анатолий Лютин 2008-03-18 21:27:39 MSK
Created attachment 328 [details]
Показывает инвертирование цветов содержимого окна просмотра 3d документов
Comment 4 Синицын Иван 2008-06-03 09:43:52 MSD
Проблема решается, если в функции SwapBuffers вставить строчку с вызовом 
SetROP2(dc, R2_COPYPEN);
которая устанавливает константу по умолчанию. Но в windows эта константа не меняется и все работает нормально.
Надо написать тесты на проверяющие вывод в GDI с использованием функции SetROP2.
Comment 5 Синицын Иван 2008-06-16 11:28:41 MSD
Тестирование показало, что всьавка строчки SetROP2(dc, R2_COPYPEN) в функцию SwapBuffers решает проблему правильного, отображения в Kompas Viewer, но не решает при просмотре 3D документа в самом Kompas. 
Если в самой функции "SetROP2", принудительно выставлять всегда режим R2_COPYPEN, то документы проказываются нормально.
Comment 6 Синицын Иван 2008-06-17 13:30:38 MSD
Сформировал патч, отправил на wine-devel. Как только будет новая сборка с этим патчем, необходимо проверить как Kompas на работоспособность, так и погонять другие программы, чтобы удостоверится, что ни чего не ломается.
Comment 7 Синицын Иван 2008-06-17 16:33:21 MSD
Описание проблемы.

1. Проблема наблюдается только тогда, когда происходит рисование с помощью GDI поверх изображения сформированного в opengl(т.е. при рисовании помеченных граней и плоскостей). Если ни чего не помечать, то деталь будет вращаться без ошибок.

2. В Копасе при воспроизведении сцены используется функция SetROP2 - которая устанавливает режим рисования картинки (mask, xor, not и т.д.) для функций рисования GDI, а так же BitBlt, PatBlt и т.д. Для вывода буфера кадра OpenGL в wine используется команда BitBlt, на результат работы которой сказывается значение установленное с помощью SetROP2.

Сделанный хак, принудительно выставляет всегда значение R2_COPYPEN, которая указывает, что выводить картинку в тех цветах, которые указаны.
Comment 8 Vitaly Lipatov 2008-06-21 17:35:53 MSD
Сборка готова.
ftp://updates.etersoft.ru/pub/Etersoft/WINE%40Etersoft/1.0.9/WINE/ALTLinux/4.0
Comment 9 Александр Пликус 2008-06-21 20:26:15 MSD
на компас 3д v9 не прорисовывается окно с деталью. см вложение
Comment 10 Александр Пликус 2008-06-21 20:31:46 MSD
не прорисовывается частично меню.

И вообще тормоза...
Comment 11 Александр Пликус 2008-06-21 20:32:35 MSD
Created attachment 500 [details]
меню

не перерисовывает полностью меню
Comment 12 Александр Пликус 2008-06-21 20:34:05 MSD
Created attachment 501 [details]
деталь 

при выборе файла, деталь на мгновение прорисовывается и исчезает
Comment 13 Александр Пликус 2008-06-21 20:34:58 MSD
Created attachment 502 [details]
окно с деталью

окно вообще не появляется. прорисовываются только очертания детали при наведении
Comment 14 Синицын Иван 2008-08-18 16:57:33 MSD
Предыдущее решение, не подходит, т.к. выяснилось, что оно ломает вывод mdi окон в 1С, необходимо искать другое, с разработчиками связался снова, жду ответа.
Comment 15 Синицын Иван 2008-08-19 11:34:55 MSD
Получилось написать тест, который воспроизводит проблему. Проблема воспроизводится, только при использовании MDI окон, в обычном окне не воспроизводится.
Comment 16 Синицын Иван 2008-08-21 10:19:10 MSD
Дальнейшие исследования показали:

1. Ошибка возникает при выводе OpenGL, т.к. в wine вывод GL осуществляется на спец. контекст и потом, просто копируется полученное в нем изображение, вот на этом этапе и возникает ошибка.

2. В wine происходит вывод OpenGL по команде glFinish, чего в принципе не должно быть
Comment 17 Синицын Иван 2008-08-21 12:38:29 MSD
Сделал новый патч.
Проверил на КОмпас Viewer и Компас 3D V10 LT. Работает нормально. Исправляет ошибки при воспроизведении 3D и исправляет ошибку с исчезновением фантомов построений. Не ломает 2D построения, как предыдущий патч.

Не ломает отрисовку mdi окон в 1С - бага 2098.

Как только патч из баги 2098, и этот будут приняты и сделана сборка. Необходимо проверить и закрыть багу.
Comment 18 Виталий Булгаков 2008-09-01 11:30:58 MSD
Проверил на сборке от 28.08.08, ALTLinux 4.0 и КОМПАС 3D V10 (проф.версия)
1. Запустить КОМПАС
2. Файл - Создать - Деталь - Ок
Создается деталь, окно детали залито черным.
3. Свернуть - развернуть окно КОМПАС - черная заливка уходит. Можно так же покрутить колесом мыши (изменение масштаба отображения в окне модели)
4. Закрыть крестиком окно Дерево модели (по умолчанию расположено слева вертикально) - снова заливает черным. Лечиться так же, как и в предыдущем случае. (Обратно включить окно Дерево модели можно из контекстного меню вызванного в окне модели.)
Comment 19 Синицын Иван 2008-09-11 17:28:26 MSD
Ошибка воспроизводится только на новых драйверах версии 173.*
на версии 169.* воспроизвести не удалось.
Теперь будем разбираться в чем проблема.
Comment 20 Синицын Иван 2008-09-15 12:23:31 MSD
Выяснено, что появления ошибки можно получить любым способом, который изменяет размеры окна.
Comment 21 Синицын Иван 2008-09-15 15:37:32 MSD
Результаты тестирования:

1. видеокарта NVidia, версия драйверов 169.12 - Ошибка не проявляется.
2. видеокарта NVidia, версия драйверов 173.14 - Ошибка проявляется.
3. видеокарта Radeon 7500, драйвера Mesa - ошибка не проявилась.
4. видеокарта Radeon X1200, драйвер 2.1.7659 - При запуске испортились иксы, так же испортились при запуске моего теста используешего gl. Winecg и notepad отработали нормально.
Comment 22 Синицын Иван 2008-09-18 13:14:07 MSD
Может ли такое поведение отрисовки быть связано с багой
http://bugs.etersoft.ru/show_bug.cgi?id=1935
или нет?
Comment 23 Vitaly Lipatov 2008-09-18 13:40:23 MSD
Зададим этот вопрос Илье :)
Comment 24 Илья Шпигорь 2008-09-18 14:05:35 MSD
Вообще-то, проблема баги 1935 заключается в том, что wine делает лишний Expose. Если приложение что-нибудь рисует не по WM_PAINT, то этот Expose в некоторых случаях все перекрывает.
Возможно, 1935 как-то связана с этой багой. Во-всяком случае можно проверить, что будет, если запретить wine делать первый Expose на все окно.
Comment 25 Синицын Иван 2008-09-19 16:39:17 MSD
Замечено, что ошибка возникает только в активных окнах. Т.е. если открыть два документа и закрыть дерево объектов в неактивном документе, то отрисовка произойдет правильно, а в активном это приводит к перекрашиванию в черный экран.
Comment 26 Синицын Иван 2008-09-26 15:53:50 MSD
Сделал в тесте такие же стили окон, как в Компас. В тесте ошибка не воспроизвелась.
Comment 27 Синицын Иван 2008-09-26 16:40:25 MSD
Через Spy++ видно, что при изменении размеров MDI окна в компасе онон получает несколько событий WM_PAINT, а в тестовой программе, только одно.
Comment 28 Синицын Иван 2008-10-01 13:17:36 MSD
Из аскона ответили, что при получении WM_SIZE в компасе перенастраивается область вывода:
"На обработке WM_SIZE выставляется glViewport"
У меня в тесте этого не делалось. Добавлю в тест посмотрю на результат. 
Comment 29 Синицын Иван 2008-10-02 10:20:15 MSD
добавил в тест установку glViewPort по событию WM_SIZE. Ошибка не воспроизвелась.
Comment 30 Vitaly Lipatov 2008-11-17 12:12:01 MSK
На драйверах nVidia 177.80 проблема не воспроизвелось.
Считаю, что проблема с 173.14 в прошлом, и делать что-либо по поводу старого драйвера смысла и возможности нет.

Впрочем, если у Алексея Рассыпнова (АСКОН) будет возможность для воспроизведения проблемы на старых драйверах, мы, конечно, готовы соучаствовать в создании теста по проблеме, с целью внесения дальнейших корректив.

Мы проверяли на
nVidia с версиями драйверов 169.12, 173.14, 177.80
ATI с версиями драйверов 2.1.7659, Mesa
Intel 945G
проблем не обнаружено.
Comment 31 Vitaly Lipatov 2008-11-18 18:50:22 MSK
Created attachment 896 [details]
Тест для воспроизведения проблемы.
Comment 32 Денис Баранов 2008-11-18 19:15:29 MSK
На драйверах для ATI от 12 ноября проблема воспроизвелась(смотреть в скрине).
Ubuntu 8.04

X -version
This is a pre-release version of the X server from The X.Org Foundation.
It is not supported in any way.
Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
Select the "xorg" product for bugs you find in this release.
Before reporting bugs in pre-release versions please check the
latest version in the X.Org Foundation git repository.
See http://wiki.x.org/wiki/GitPage for git access instructions.
X.Org X Server 1.4.0.90
Release Date: 5 September 2007
X Protocol Version 11, Revision 0
Build Operating System: Linux Ubuntu (xorg-server 2:1.4.1~git20080131-1ubuntu9.2)
Current Operating System: Linux BARA 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686
Build Date: 13 June 2008  01:08:21AM
Comment 33 Денис Баранов 2008-11-18 19:16:24 MSK
Created attachment 897 [details]
скрин
Comment 34 Денис Баранов 2008-11-19 18:41:27 MSK
С новым X.org и с драйверами ATI 8.11 проблема так же воспроизводится. Ubuntu 8.10.

X -version
X.Org X Server 1.5.2
Release Date: 10 October 2008
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.24-19-server i686 Ubuntu
Current Operating System: Linux BARA 2.6.27-8-generic #1 SMP Thu Nov 6 17:33:54 UTC 2008 i686
Build Date: 24 October 2008  08:00:16AM
xorg-server 2:1.5.2-2ubuntu3 (buildd@rothera.buildd) 
Comment 35 Vitaly Lipatov 2008-11-21 12:52:09 MSK
Поставил в ссылку страницу с результатами тестирования: http://winehq.org.ru/GL

Основные выводы:
1. С nVidia на старых Иксах (думаю, что до версии 1.4, то есть, например на 
ALT Linux 4.0) есть проблемы, вызывающие неудобство, но не мешающие работать.
Это уйдёт в прошлое, как и подустаревшая уже система ALT 4.0

2. С ATI проблемы продолжаются до сих пор - изображение всегда чёрное, и 
никакими настройками и версиями драйверов вплоть до 8.55.2 (Catalyst 8.11) 
побороть это не удалось. Более того, последние версии на последних Иксах 
работают нестабильно (зависание системы, чёрный экран при запуске иксов...)

3. По Intel не очень большая статистика (у нас только одна машина), но проблем 
не обнаружено.
Comment 36 Виталий Булгаков 2008-11-24 14:16:42 MSK
Проблемы с профессиональной картой Nvidia Quadro FX1500
ALTLinux 4.1 Desktop
Драйвер NVIDIA-Linux-x86-177.82-pkg1.run - рекомендуемый на сайте Nvidia
Параметры драйвера по умолчанию
При открытии сборки  \Samples\Reduser\078.505.9.0100.00.A3D прорисовывается дерево модели, после этого в окне модели на курсоре появляются песочные часы и КОМПАС виснет. Нормально открывается, если окно документа не максимизировано.
Comment 37 Vitaly Lipatov 2008-11-25 17:10:17 MSK
Created attachment 922 [details]
Тест 3D с MDI
Comment 38 Vitaly Lipatov 2008-11-25 17:17:01 MSK
Created attachment 923 [details]
Исходный код теста на C++
Comment 39 Vitaly Lipatov 2009-10-21 11:33:21 MSD
Разработан тест под Linux, показывающий проблему на ATI:

http://git.etersoft.ru/people/shpigor/packages/?p=gdigltest.git;a=blob;f=linux/glgditest.c;h=3423ebd48d2a110929e485b63fb7f8f4d0086b54;hb=b015c1e72b080cbb85aad5ed694002e1323673b4

Comment 40 Vitaly Lipatov 2009-10-21 11:34:59 MSD
Created attachment 1345 [details]
Linux text for GL with GDI drawing
Comment 41 Vitaly Lipatov 2009-11-21 16:48:58 MSK
Откладываем решение до получения ответа от AMD.
Comment 42 Vitaly Lipatov 2009-11-21 18:19:26 MSK
Выношу из проекта. Вернёмся, когда будет решение или новые драйвера. Напоминание установлено.
Comment 43 Александр Морозов 2012-05-10 14:15:18 MSK
Откатил в eterwine патч "winex11.drv:opengl.c:fix bug 954. make right drawing mode? when swapbuffers, and delete render when call glFinish."
Comment 44 Vitaly Lipatov 2014-09-11 18:36:46 MSK
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.