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

HLSL и вызов функций (3 стр)

Страницы: 1 2 3 4 59 Следующая »
#30
18:50, 5 фев. 2016

cNoNim
> но сильно ли будет плохо если

Посмотри шейдера HL2

> заменить на
> if (DEFINE) {
> }

Большое число #define проводит к большому числу шейдеров (жрут память и переключение требует времени).


#31
18:51, 5 фев. 2016

}:+()___ [Smile]
> Так что единственная возможная разница между "branch" и "flatten" состоит в
> дополнительной проверке, идут ли все потоки варпа по одной ветке или нет.
Не распарсил эту фразу. Разница между "branch" и "flatten" состоит в коде, который будет генериться.

#32
18:53, 5 фев. 2016

innuendo
> Большое число #define проводит к большому числу шейдеров (жрут память и
> переключение требует времени).
я по этому и спросил... сейчас вот допиливаю radix-sort все а там во всех примерах на каждый кейс свой шейдер, т.е. обратная сортировка другой шейдер, signed сортировка третий я хочу это заменить на юниформы но боюся )))

#33
19:18, 5 фев. 2016

cNoNim
> пока тут все кидаются тапками... расскажите еще про static branching
> я хз как оно в DX :) и вопрос наверное оффтопик потому что интересует OGL
> но сильно ли будет плохо если
> if (DEFINE) {
> }

Если условие можно разрулить в компайл тайме, то это не статик бранчинг.
Статик бранчинг это когда у тебя значение константно для всех вершин/пикселей, например юниформ.

#34
19:29, 5 фев. 2016

Executor
ну я частично про это и спрашиваю статик бранчинг намного хуже компайл тайм бранчинга?

#35
19:40, 5 фев. 2016

я тут неожиданно допер... что все мои проблемы решают сабрутины... и мне нужны они а не статик бранчинг )

#36
19:47, 5 фев. 2016

cNoNim
> ну я частично про это и спрашиваю статик бранчинг намного хуже компайл тайм бранчинга?

Да.

#37
20:28, 5 фев. 2016

Executor
> Да.
Насколько?

#38
20:41, 5 фев. 2016

-Eugene-
> > Да.
> Насколько?

И в каких ситуациях ?

#39
21:38, 5 фев. 2016

Так же не стоит забывать, что условие это не всегда бранчинг, там может быть cmp.

-Eugene-
> Насколько?

Не знаю, мерять надо. Я думаю от конкретного железа зависит.

#40
21:52, 5 фев. 2016

Executor
> Так же не стоит забывать, что условие это не всегда бранчинг, там может быть
> cmp.

Мы же про статик бранч говорим ?

#41
22:03, 5 фев. 2016

innuendo
> Мы же про статик бранч говорим ?

    ps_3_0
    dcl_texcoord v0.xy
    dcl_2d s0
    texld r0, v0, s0
    mul r1, v0.xyxy, v0.xyxy
    cmp oC0, -c0.x, r1, r0
    ps_3_0
    dcl_texcoord v0.xy
    dcl_2d s0
    if b0
      texld oC0, v0, s0
    else
      mul oC0, v0.xyxy, v0.xyxy
    endif

Вещи ведь разные, не?

#42
22:09, 5 фев. 2016

Executor
> Вещи ведь разные, не?

Ну так. 

#43
22:22, 5 фев. 2016

Executor
> Вещи ведь разные, не?
ну так погоди я не понял... ну это асм... полученный из HLSL насколько я понял,
а он что дальше не может драйвером или чем там преобразоваться дальше перед выполнением?

хотя если честно я не совсем понял что это за магия такая и где здесь какой бранчинг
#44
22:25, 5 фев. 2016

cNoNim

Кури доки DXSDK и вендоров

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