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

Vulkan API (вышел!) (7 стр)

Страницы: 16 7 8 9418 Следующая »
#90
15:49, 11 мар. 2015

=A=L=X=
> Так от того и размножались, что не было переходов на новую версию и приходилось
> тянуть всё старое в попытке слить это старое с чем то совершенно новым.

Если бы баги были только внутри каждого вендора - это бы согласововалось с твоим утверждением. А получалось, что на Nvidia одна картинка, на ATI - другая


#91
16:05, 11 мар. 2015

innuendo
> Если бы баги были только внутри каждого вендора - это бы согласововалось с
> твоим утверждением. А получалось, что на Nvidia одна картинка, на ATI - другая

Ты в этом обвиняешь расширения или что? Не могу уловить к чему это всё говорится.

#92
16:27, 11 мар. 2015

innuendo
> А получалось, что на Nvidia одна картинка, на ATI - другая
Дык DirectX один, а OpenGL каждый вендор реализовывает сам. Поэтому и различия бывают и несоответствия со спецификацией. Это проблема открытого стандарта. Vulkan тоже открытый, но благодаря новой архитектуре которая ближе к видеокарте и благодаря отсутствию ненужного хлама, ожидается меньший вес и хорошее качество драйвера (на презентации упоминали об этом).
Например тот-же Mantle у меня не глючил, все работало также как на DX. Единственно на старом драйвере в меню BF4 у меня мышь не попадала в GUI (непонятный баг... причем тут GAPI интересно). Потом починили.

#93
16:35, 11 мар. 2015

>А что, трудно приделать к Vulkan в качестве расширения?
и почему я должен ждать спецификацию и драйверы еще год, если я могу уже сейчас в gl-e писать код максимальной производительности (которую вулкану еще требуется достичь).
хотя есть один момент, возможно вулкан будет лучше параллелиться. я не могу с разных потоков ввызывать glCaptureRenderState.

#94
16:40, 11 мар. 2015

=A=L=X=
> Ты в этом обвиняешь расширения или

Неужеле не понятно? Был единый стандарт без местных фич - был общий код

#95
16:54, 11 мар. 2015

innuendo
> Неужеле не понятно? Был единый стандарт без местных фич - был общий код

Ну может даже запретят расширения, но я лично не думаю что так будет. Более того, почти уверен, что так не будет.
Фичу то кто то может и внедрить, разве в силах кто запретить в DLL-ку внедрить еще одну функцию? Но она не становится от этого стандартом.... до момента принятия новой минорной версии.
Так что я тут не вижу абсолютно никаких проблем. Проблема не в расширениях. Проблема когда устаревшие морально как расширения так и базовые моменты API тянутся с бородатых 80-ых как будто так и надо.
А потом кто-то удивляется "а почему там миллионы строк кода и на любой чих 100500 проверок?

#96
18:34, 11 мар. 2015

=A=L=X=
> устаревшие морально как расширения

не довод

=A=L=X=
> Так что я тут не вижу абсолютно никаких проблем. Проблема не в расширениях.
и
> Проблема когда устаревшие морально как расширения так и базовые моменты API

диссонанс. Так пофиг или нет? Ведь не мешает?

#97
19:11, 11 мар. 2015

clc

> Ведь не мешает?

Уже до Кроноса дошло, что мешает и что несерьёзно всё это. Надо что-то менять.
Ну и правда, посмотрим сперва во что Вулкан превратится и посмотрим. Тема про говноапи была в другом месте.

#98
(Правка: 20:56) 20:53, 11 мар. 2015

Кстати, вопрос.

Идея, почему Rasterizer и Blend State и все шейдеры формируют Pipeline State Object — понятна.
Почему же туда не входят Depth Stencil State и Sampler State?

Теоретически, может оказаться, что на каком-нибудь новом GPU смена Depth Stencil State или Sampler State будет приводить к необходимости менять хардварный шейдер.
И тогда установка Pipeline State'а опять станет дорогой, опять новые API и т.д. и т.п.

По крайней мере, в Apple Metal и в DX12 (судя по слайдам) реализовано действительно так.

#99
21:09, 11 мар. 2015

Demiurg-HG
> Кстати, вопрос.
На него тебе может ответить только человек разрабатывающий чипы. Там просто и вдруг не бывает. Очень вероятно что на уровне кремния всё вполне очевидно, что и с чем может или не может быть/стать в обозримом будущем.

#100
(Правка: 21:36) 21:24, 11 мар. 2015

Bishop
> На него тебе может ответить только человек разрабатывающий чипы. Там просто и
> вдруг не бывает. Очень вероятно что на уровне кремния всё вполне очевидно, что
> и с чем может или не может быть/стать в обозримом будущем.
Кстати, ответ нашел:
https://fgiesen.wordpress.com/2011/07/04/a-trip-through-the-graph… -2011-part-4/

Вкратце, как я понял, наивная реализация сэмплера подразумевает пересылку примерно 24–40 байт (u, v, du/dx, dv/dx, du/dy dv/dy, ...) на одну выборку.
Поэтому в Shader Core этим ни кто и не занимается, а занимается этим очень тупой, но очень быстрый Texture Unit. И установка сэмплеров подразумевает настройку именно этого юнита.

C DepthStencil пока не ясно...
Причем вдвойне не ясно, т.к. DepthStencilState определенно зависит от RasterizerState'а и от Pixel Shader'а (ибо всякие Early Z), и даже от BlendState'а, т.к. MSAA и Alpha-to-Coverage!

#101
21:58, 11 мар. 2015

Demiurg-HG

Ну, видимо, по аналогии с Texture Unit, есть специально обученые островки транзисторов, называемые ROP, которые умеют например хотя бы  https://ru.wikipedia.org/wiki/HyperZ

#102
2:26, 12 мар. 2015

Iron Man
> А почему такая разница в количестве кода?
из-за заполнения структур. на самом деле если делать по уму кубик в OGL с установкой всех стейтов - будет вообще одинаковое количество строк кода.

А кроме того вроде в DX можно не писать структуры а передавать нули, тогда вроде будет по дефолту (но я не уверен, не пробовал, а только видел), а значит снова будет равное число строк

#103
3:17, 12 мар. 2015

war_zes
> из-за заполнения структур. на самом деле если делать по уму кубик в OGL с
> установкой всех стейтов - будет вообще одинаковое количество строк кода.
В OpenGL стейт не фиксированный, там нет смысла ставить все стейты. В любой момент может появится часть стейта из какого-то расширения, которое может быть, а может и не быть.

#104
4:35, 12 мар. 2015

bazhenovc
> В OpenGL стейт не фиксированный, там нет смысла ставить все стейты
Ага, а потом гадать, откуда вылезли баги....
Ведь в любой момент окажется что стейт стоит совершенно не тот, который мы ожидаем. Так что как минимум нужно проставлять все основные стейты... чего конечно же в уроках про кубик никто не делает.

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