Size: a a a

pro.graphon (and gamedev)

2020 February 18

AB

Alexander Busarov in pro.graphon (and gamedev)
Есть конечно
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
в сгенерированном коде?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
и то и другое не в immediate constant-ы пойдёт (такие вообще есть на видяхах?)?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Anatoly Tomilov
и то и другое не в immediate constant-ы пойдёт (такие вообще есть на видяхах?)?
На GCN это данные в коде шейдера будут, если труъ static const (не знаю, как в GLSL), с загрузкой прямо относительно адреса шейдера, на Nvidia не знаю, но что-то быть должно
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
вот смотрю:
1.) https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#operand-costs__cost-estimates-for-sccessing-state-spaces нулевая стоимость для immediate
2.) для float-ов есть такие варианты инструкций (с immediate операндами) https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#floating-point-instructions
мне так видится, что литералы из правой части gl_Position.xy = vec2(...); точно попадают в immediate operand-ы, а из массива — я даже не знаю
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
что из себя этот const массив представляет?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
в какую память он попадает?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Anatoly Tomilov
что из себя этот const массив представляет?
На Nvidia, вероятно, constant buffer с таким же способом кэширования, как у обыкновенных, но не знаю, не видел код
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
А на AMD есть просто загрузка двордов по виртуальному адресу (s_load_dword[x2|x4|x8|x16])
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
по адресу из секции кода?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Anatoly Tomilov
по адресу из секции кода?
Да, но тут просто device-local память, наверно
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Шейдеры это тоже голые данные, s_setpc_b64 это прыжок по произвольному адресу
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Anatoly Tomilov
в сгенерированном коде?
и в сгенерированном как правило тоже, но это зависит больше от вендора конечно
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
а у тебя тормозило на массиве из 90 элементов потому, что память регистровая ( SGPR скорее всего ) вся ушла
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
после того случая я боюсь эти массивы, просто
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Alexander Busarov
а у тебя тормозило на массиве из 90 элементов потому, что память регистровая ( SGPR скорее всего ) вся ушла
Ну тут компилятор какой-то странный
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Ну тут компилятор какой-то странный
ты же не знаешь, что он делал с этими 90 элементами
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
мб там нельзя было оптимизирвать их, и он всё пихнул в SGPR
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
не знаю. Но где тот порог?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Alexander Busarov
ты же не знаешь, что он делал с этими 90 элементами
Да, не надо писать под OpenGL) Но CodeXL, может быть, ISA покажет
источник