Войти
ПрограммированиеФорумГрафика

Mesa3D для чего вообще?

Страницы: 1 2 Следующая »
#0
14:06, 2 мар 2014

OpenGL - графическая библиотека, пишут игры, программа. Понятно. Но зачем нужна Mesa3D. Это копия OpenGL, щас вроде поддерживает версия OpenGL 3.3, полная копия получается, но взаимодействие с ОС и железом другое. Но для чего это нужно,  кто этим пользуется? Только для более глубокого изучения OpenGL или ещё для чего? Кто-то известный использует Mesa3D?

#1
14:29, 2 мар 2014

Nawy
> Но зачем нужна Mesa3D. Это копия OpenGL
OpenGL не библиотека, это стандарт. А Mesa3d уже библиотека - одна из реализаций стандарта, причем открытая.
Незаменима там, где вендор по разным причинам отказывается поддерживать 3d.
Энтузиасты могут отреверсить как карточка растризует полики (nouveau), или взять полные спеки чипа, если они открыты (как в случае с AMD).
Но сам чип только предоставляет средства для реализации какого-то 3d api, которое ещё надо отдельно писать. На борту нет никакого OpenGL или D3D.
Вот mesa3d и есть уже написанное api, уже готовая реализация OpenGL, которой только надо предоставить самый базовый функционал карточки.
В самом крайнем случае mesa3d вообще нарисует всё софтово, своими силами, без поддержки железа.

#2
15:02, 2 мар 2014

Nawy

Но для чего это нужно,  кто этим пользуется?

Я этим пользуюсь, каждый день. Как и многие другие пользователи Linux.

#3
19:19, 2 мар 2014

А кстати, где взять последнюю mesa3d dll'ку под винду? Хочу отладить свой движок на ней, а то он не везде работает, видимо я что-то делаю не по спецификации или эксплуатирую какой-то баг проприетарного драйвера AMD.
Я бы это и на Linux'е сделал, но там уже проприетарный стоит, удалять его не хочется.

#4
21:55, 2 мар 2014

gammaker

А кстати, где взять последнюю mesa3d dll'ку под винду?

К сожалению, с этим большая проблема. Проект почти не развивает порт для Windows, поэтому на протяжении многих релизов её вообще невозможно было собрать без патчей. А то, что удалось собрать моему коллеге год назад - работало почти никак (хуже чем одна из 7й версии, которую ещё можно было собрать для винды).
Готовых свежих библиотек в интернете вообще не найти (кроме пары левых ещё 6й версии, только 32битных разумеется).

Кстати, я у них так и не понял какую OpenGL версию поддерживает софтовый рендер (по сравнению с r600 и прочими).

#5
21:57, 2 мар 2014

RPGman
> OpenGL не библиотека, это стандарт. А Mesa3d уже библиотека - одна из
> реализаций стандарта, причем открытая.

Была же sgi версия

#6
22:25, 2 мар 2014

innuendo
> Была же sgi версия
Была. Но теперь это таки стандарт. API, а не конкретная реализация.
http://www.opengl.org/about/

#7
1:03, 3 мар 2014

Поставила на своем линуксе проприетарный драйвер, а проверить поддержку 3.3 в новой версии mesa забыла.
В 10-й версии mesa есть поддержка 3.3? Или это только слухи?

#8
1:35, 3 мар 2014

programina
> В 10-й версии mesa есть поддержка 3.3? Или это только слухи?
http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt

#9
1:45, 3 мар 2014

Про i915 там ничего нет :(

#10
2:37, 3 мар 2014

gammaker
> А кстати, где взять последнюю mesa3d dll'ку под винду?

В проекте MSYS2 есть (http://sourceforge.net/projects/msys2/)

32: http://www.mirrorservice.org/sites/downloads.sourceforge.net/m/ms… ny.pkg.tar.xz
64: http://www.mirrorservice.org/sites/downloads.sourceforge.net/m/ms… ny.pkg.tar.xz

#11
20:14, 3 мар 2014

arprog
> 32: http://www.mirrorservice.org/sites/downloads.sourceforge.net/m/ms…
> ny.pkg.tar.xz
Скачал. Только почему-то GL_VERSION показывает 2.1. А на экране mesa рендерит месиво какое-то :). И выдаёт предупреждения, ругаясь на эти строчки:

struct PointLight {vec3 Color, Position, Attenuation;};
struct DirectionalLight {vec3 Color, Position;};
struct SpotLight {vec3 Color, Position;};
0:4(55): warning: empty declaration
0:5(48): warning: empty declaration
0:6(41): warning: empty declaration

Чем его не устраивают определения структур? В коде ниже они потом используются.

#12
23:19, 3 мар 2014

gammaker
хз, я запускал urho3d на нем, все работает...

#13
8:53, 4 мар 2014

arprog
> хз, я запускал urho3d на нем, все работает...
А какой там GL? А то моему движку требуется то ли 3.2, то ли 3.3. Но mesa, показывая 2.1, поддерживает расширения, которые заменяют часть функционала 3.3 и которых движку достаточно. Но с такой реализацией GL мой движок сталкивается впервые. Видимо, я забыл активировать какие-то расширения в шейдерах, а она молчит.
Надо наконец-то добавить в движок поддержку debug output, и смотреть, есть ли какие-нибудь сообщения.

Пару лет назад я запускал свой движок в месе и всё работало правильно. Но тогда я не использовал ничего новее 2.0. У меня была смесь FFP и самого первого GLSL и не было генерации текстур на gpu.

#14
9:48, 4 мар 2014

programina
> В 10-й версии mesa есть поддержка 3.3? Или это только слухи?
Вообще там уже довольно давно поддерживается всё кроме геометрических шейдеров, поэтому если они не используются можно легко выставить MESA_GL_VERSION_OVERRIDE=3.3 и игра/софт будет работать.

По геометрическим шейдера и "официальной" поддержке 3.3:
В последнем стабильном релизе (10.0.3) поддержка 3.3 реализована только для Intel: Ivy Bridge и Haswell. В текущей версии из git уже реализована поддержка для карт AMD, при этом для GS на старых картах (3XXX 4XXX) нужно ещё и ядро 3.14. И даже для Nvidia запилили, правда с некоторыми картами Nouveau умрёт даже от SuperTuxKart, а кое где крешнется ещё при загрузке системы.

programina
> Про i915 там ничего нет :(
i915 это говно мамонта, оно и на винде OpenGL 3 не поддерживают.
Первые интеграшки Intel c поддержкой OpenGL 3 были Sandy Bridge и HD2XXX/3XXX.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.