Всем доброго дня. Каким софтом можно проследить, как меняется значение переменной в шейдере? Я порылся в gDEBugger и не нашел такой функции, ищу что-то другое.
UPD: для версии 4.3 и выше, для Windows, с гуем, весом до 200 мегабайт.
1.Nvidia nSight Visual Studio Edition (сам не смотрел)
2. отладить в hlsl а потом утилитой конвертнуть в glsl(тоже не пробовал пока)
TheOrca
> Всем доброго дня. Каким софтом можно проследить, как меняется значение
> переменной в шейдере?
Если баг в драйвере - поможет вряд ли :)
Какая, конкретно, ситуация ?
PaulSh
А под AMD карты она бачит?
TheGrayWolf
> А под AMD карты она бачит?
Нет, судя по тому, что на странице скачивания требуют конкретную версию драйвера NVidia.
innuendo
> Какая, конкретно, ситуация ?
Мне хотелось иметь над шейдером полный контроль, потому что баги будут вылазить постоянно, и каждый раз разные.
Не создавать же тему под каждый баг. Я рисовал сетку, и почти получилось.
Отладчика я, к сожалению, не нашел. NSight слишком тяжелый, ну да ладно пока.
TheOrca
> Мне хотелось иметь над шейдером полный контроль, потому что баги будут вылазить
> постоянно, и каждый раз разные.
Обычно выводят промежуточный результат в цвет и так отлаживают.
TheGrayWolf
под амд карты у амд есть свой деббагер. Название не помню - найдешь на дев портале амд.
TheOrca
> Мне хотелось иметь над шейдером полный контроль, потому что баги будут вылазить
> постоянно, и каждый раз разные.
There are only two debug techniques in the universe - printf and //...
gammaker
> Обычно выводят промежуточный результат в цвет и так отлаживают.
compute shaders так отлаживать очень тяжело. Надо смотреть что за циферка и на каком этапе. Да и вообще, чтобы нервы экономить.
gDEBugger
Bo
он не умеет отлаживать шейдеры
StiX
> он не умеет отлаживать шейдеры
В каких местах нужна отладка шейдеров ?
innuendo
> В каких местах нужна отладка шейдеров ?
В каких местах нужна отладка кода на C++?
Зачем в VisualStudio 2012 и выше есть эта фича для DirectX и почему ее нет в родном для OpenGL gDEBugger'e? Намеки на то, что за OpenGL никто не отвечает?
TheOrca
> > В каких местах нужна отладка шейдеров ?
> В каких местах нужна отладка кода на C++?
В местах где число строк кода очень-очень-очень много ... Ты можешь, конкретно, привести пример когда тебе был нужен отладчик шейдеров ?
> и почему ее нет в родном для OpenGL gDEBugger'e? Намеки на то, что за OpenGL
> никто не отвечает?
Почти так, плюшек как в DX нету - нету вложений от покупок новых ОС :)
innuendo
> Ты можешь, конкретно, привести пример когда тебе был нужен отладчик шейдеров ?
Не много, конечно, но отладчик уже бы пригодился. Падает с кодом ошибки 7. Time-out limit. Похоже, где-то бесконечный цикл. Разберешься без отладчика, как говорил? Я, конечно, понимаю, что разберешься, и я сам разберусь. Но у меня на это уйдет еще несколько дней.
#version 430 layout(points) in; layout( invocations = 1) in; layout( line_strip, max_vertices = 64) out; uniform vec4 viewportSize;//[0] pixel width [1] pixel height [2] scene units width [3] scene units height out vec4 vertexColor; vec4 majorColor = vec4( 0,0,0,1.0f); bool drawLines( int i, float stride, int direction) { float tx0 = 0.0f; float tx1 = 0.0f; float ty0 = 0.0f; float ty1 = 0.0f; float tcoord = ( i * stride) * direction; if ( tcoord > 1.0f) { return false; } tx0 = -1; tx1 = 1; ty0 = tcoord; ty1 = tcoord; vertexColor = majorColor; gl_Position = vec4( tx0,ty0,0,1); EmitVertex( ); gl_Position = vec4( tx1,ty1,0,1); EmitVertex( ); EndPrimitive( ); return true; } void main( ) { int i = 0; bool exit = false; while( !exit) { exit = drawLines( i,0.1f,1); i++; } }
Updated.
Тема в архиве.