LINUX.ORG.RU
ФорумTalks

LLVM 3.4 и драйвера radeon

 , ,


0

2

в связи с выходом сабжа и вот этим:

Сборка по умолчанию бэкэнда для использования в качестве целевой платформы GPU семейства R600 (HD2XXX - HD7XXX). Бэкэнд необходим для компилятора шейдеров LLVM, который в свою очередь требуется для открытой реализации стандарта OpenCL;

что-то поменяется в открытых видеодровах АМД в лучшую сторону? а то я краем уха слышал звон, но что к чему не понял...

что-то поменяется в открытых видеодровах АМД в лучшую сторону?

+5 или даже +10 fps в Unigine Heaven.

ArtSh ★★★
()

для карт r600 оно опцианально, и на выбор аж 3 молотилки шейлеров есть, для radeonsi llvm обезателен, и узнать что он дает нельзя, ибо только оно и есть.

Novell-ch ★★★★★
()
Ответ на: комментарий от ArtSh

+5 или даже +10 fps

25 и 50 процентное увеличение производительности? Откуда так много то? :-) А вообще Novell-ch все правильно написал.

Behem0th ★★★★★
()
Ответ на: комментарий от Novell-ch

по умолчанию он

Наверно как включили по умолчанию у меня подсознательно этот вариант пометился как недоступный:-)

Behem0th ★★★★★
()
Ответ на: комментарий от Behem0th

25 и 50 процентное увеличение производительности? Откуда так много то? :-)

radeonsi ещё плохо оптимизирован.

ArtSh ★★★
()
Ответ на: комментарий от Novell-ch

эм, так что, для радеонСИ будет что-то там в виде профита? а для р600г типа просто один из вариантов добавили?

Kompilainenn ★★★★★
() автор топика
Ответ на: комментарий от Kompilainenn

профит есть всегда, llvm пилится очень сильно в том числе и бекенд r600, вроде с llvm <3.3 нельзя получить опенгл 3.1 на радеонси, просто я не могу сказать профитов от перехода с 3.3 на 3.4 я всегда сижу на svn, у меня уже пару месяцев как 3.5svn.

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

ну просто для меня весьма неочевидна связь между llvm и производительностью драйвера видеокарты, поэтому я и спрашиваю

Kompilainenn ★★★★★
() автор топика
Ответ на: комментарий от Kompilainenn

llvm молотит шейдеры, opencl, является кодогенератором который уже выполняет видеокарта, амд поставила ставку на llvm, запилили бекенд в него, активно развивают.

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

llvm молотит шейдеры, opencl, является кодогенератором который уже выполняет видеокарта,

а есть, где почитать про это в виде «для нубов», простым языком?

Kompilainenn ★★★★★
() автор топика
Ответ на: комментарий от Programmist11180

LIBGL_ALWAYS_SOFTWARE=1 glxgears
если меса собрана с --with-gallium-drivers=swrast и --enable-gallium-llvm

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

А какие вообще есть переменные окружения для R600? Где про них почитать можно? есть ли сводный списочек?

aleax
()
Ответ на: комментарий от aleax
grep -r "DBG_" .
./evergreen_compute.h:  if (!(rscreen->b.debug_flags & DBG_COMPUTE)) {
./sb/sb_core.cpp:       sb_context::dump_pass = df & DBG_SB_DUMP;
./sb/sb_core.cpp:       sb_context::dump_stat = df & DBG_SB_STAT;
./sb/sb_core.cpp:       sb_context::dry_run = df & DBG_SB_DRY_RUN;
./sb/sb_core.cpp:       sb_context::no_fallback = df & DBG_SB_NO_FALLBACK;
./sb/sb_core.cpp:       sb_context::safe_math = df & DBG_SB_SAFEMATH;
./r600_asm.c:   unsigned no_sb = rctx->screen->b.debug_flags & DBG_NO_SB;
./r600_asm.c:   unsigned sb_disasm = !no_sb || (rctx->screen->b.debug_flags & DBG_SB_DISASM);
./r600_asm.c:   if (rctx->screen->b.debug_flags & DBG_FS) {
./r600_shader.c:        unsigned use_sb = !(rctx->screen->b.debug_flags & DBG_NO_SB);
./r600_shader.c:        unsigned sb_disasm = use_sb || (rctx->screen->b.debug_flags & DBG_SB_DISASM);
./r600_shader.c:        use_llvm = !(rscreen->b.debug_flags & DBG_NO_LLVM);
./r600_pipe.h:#define DBG_NO_LLVM               (1 << 17)
./r600_pipe.h:#define DBG_NO_CP_DMA             (1 << 18)
./r600_pipe.h:#define DBG_NO_ASYNC_DMA  (1 << 19)
./r600_pipe.h:#define DBG_NO_SB         (1 << 21)
./r600_pipe.h:#define DBG_SB_CS         (1 << 22)
./r600_pipe.h:#define DBG_SB_DRY_RUN    (1 << 23)
./r600_pipe.h:#define DBG_SB_STAT               (1 << 24)
./r600_pipe.h:#define DBG_SB_DUMP               (1 << 25)
./r600_pipe.h:#define DBG_SB_NO_FALLBACK        (1 << 26)
./r600_pipe.h:#define DBG_SB_DISASM     (1 << 27)
./r600_pipe.h:#define DBG_SB_SAFEMATH   (1 << 28)
./evergreen_compute.c:          bool dump = (ctx->screen->b.debug_flags & DBG_CS) != 0;
./evergreen_compute.c:          unsigned use_sb = ctx->screen->b.debug_flags & DBG_SB_CS;
./evergreen_compute.c:                  (ctx->screen->b.debug_flags & DBG_SB_DISASM);
./r600_pipe.c:  { "nollvm", DBG_NO_LLVM, "Disable the LLVM shader compiler" },
./r600_pipe.c:  { "nocpdma", DBG_NO_CP_DMA, "Disable CP DMA" },
./r600_pipe.c:  { "nodma", DBG_NO_ASYNC_DMA, "Disable asynchronous DMA" },
./r600_pipe.c:  { "nosb", DBG_NO_SB, "Disable sb backend for graphics shaders" },
./r600_pipe.c:  { "sbcl", DBG_SB_CS, "Enable sb backend for compute shaders" },
./r600_pipe.c:  { "sbdry", DBG_SB_DRY_RUN, "Don't use optimized bytecode (just print the dumps)" },
./r600_pipe.c:  { "sbstat", DBG_SB_STAT, "Print optimization statistics for shaders" },
./r600_pipe.c:  { "sbdump", DBG_SB_DUMP, "Print IR dumps after some optimization passes" },
./r600_pipe.c:  { "sbnofallback", DBG_SB_NO_FALLBACK, "Abort on errors instead of fallback" },
./r600_pipe.c:  { "sbdisasm", DBG_SB_DISASM, "Use sb disassembler for shader dumps" },
./r600_pipe.c:  { "sbsafemath", DBG_SB_SAFEMATH, "Disable unsafe math optimizations" },
./r600_pipe.c:  if (rscreen->b.info.r600_has_dma && !(rscreen->b.debug_flags & DBG_NO_ASYNC_DMA)) {
./r600_pipe.c:          rscreen->b.debug_flags |= DBG_COMPUTE;
./r600_pipe.c:          rscreen->b.debug_flags |= DBG_FS | DBG_VS | DBG_GS | DBG_PS | DBG_CS;
./r600_pipe.c:          rscreen->b.debug_flags |= DBG_NO_HYPERZ;
./r600_pipe.c:          rscreen->b.debug_flags |= DBG_NO_LLVM;
./r600_pipe.c:                        !(rscreen->b.debug_flags & DBG_NO_CP_DMA);
./r600_pipe.c:  if (rscreen->b.info.drm_minor >= 28 && (rscreen->b.debug_flags & DBG_TRACE_CS)) {

DBG меняем на R600 еще есть R600_DEBUG=nollvm,nosb,sbstat и т.д из списка

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

много еще зависит как собрана меса, если без --enable-debug будет только это.
strings ./r600_dri.so |egrep «R600_|RADEON|DEBUG»
LIBGL_DEBUG
MESA_DEBUG
PP_DEBUG
R600_DEBUG
R600_DEBUG_COMPUTE
R600_DUMP_SHADERS
R600_HYPERZ
R600_LLVM
R600_SB_DSKIP_START
R600_SB_DSKIP_END
R600_SB_DSKIP_MODE
RADEON_DUMP_CS
RADEON_NOOP
RADEON_VA
RADEON_THREAD

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

Есть еще щетчики, я например пользуюсь для показа фпс.

 $ GALLIUM_HUD=help celestia
Syntax: GALLIUM_HUD=name1[+name2][...][:value1][,nameI...][;nameJ...]

  Names are identifiers of data sources which will be drawn as graphs
  in panes. Multiple graphs can be drawn in the same pane.
  There can be multiple panes placed in rows and columns.

  '+' separates names which will share a pane.
  ':[value]' specifies the initial maximum value of the Y axis
             for the given pane.
  ',' creates a new pane below the last one.
  ';' creates a new pane at the top of the next column.

  Example: GALLIUM_HUD="cpu,fps;primitives-generated"

  Available names:
    fps
    cpu
    cpu0
    cpu1
    cpu2
    cpu3
    cpu4
    cpu5
    cpu6
    cpu7
    samples-passed (pixels-rendered)
    primitives-generated
    draw-calls
    requested-VRAM
    requested-GTT
    pipeline-statistics-
                        ia_vertices
                        ia_primitives
                        vs_invocations
                        gs_invocations
                        gs_primitives
                        c_invocationd
                        c_primitives
                        ps_invocations
                        hs_invocations
                        ds_invocations
                        cs_invocations

https://bugs.freedesktop.org/show_bug.cgi?id=68445

Мой запрос на более простой счетчик, как в фрапсе под виндой. Мне лично очень не хватает в линей данной фишки. Добавить такой код я думаю было бы не сложно, жаль я вообще не умею программировать:-(

Behem0th ★★★★★
()

Просветите, пожалуйста, зачем нужен ллвм и даст ли он прирост в играх.

kinik ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.