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

[Direct3D9] Потестите на intel`овских GPU.

Страницы: 1 2 Следующая »
#0
17:48, 25 июня 2014

Здравствуйте!

Похоже я попал на хардварный баг.

У меня треугольник не правильно отрисовывается:
wtf | [Direct3D9] Потестите на intel`овских GPU.

Воспроизводиться на ноуте:
  Разрешения 1366x768.
  GPU от Intel.

Потестите пожалуйста (исходный код прилагается):
  BugOnIntelGPU(2014.06.25)

Основная часть тестового кода на моём движке:

QapColor colors[]={0xff00ff00,0xff0000ff,0xffff0000};
vec2f arr[]={ // Я не понимаю что особенного в этих числах, но баг как-то от них зависит.
  vec2f(4300.00,-4400.00),  
  vec2f(4300.00+9140,4700.00),
  vec2f(-15000.00+9140,4700.00)
};
{
  QapDev::BatchScope Scope(qDev);
  for(int i=0;i<3;i++)qDev.AddVertex(arr[i],colors[i],vec2f(0,0));  // добавляем три вершины
  qDev.AddTris(2,1,0); // добавляем треугольник.
}

Спасибо.


#1
18:12, 25 июня 2014

вижу как зеленая плоскость пересекает белую плоскость, в чём баг то?

#2
18:18, 25 июня 2014

Intel HD 3000 на Core i7 - все ок.

#3
18:42, 25 июня 2014

Aroch
У меня вместо треугольника рисуются два кусочка. Причём когда я двигаю синию вершину вправо, то один кусок остаётся на месте, а второй отезжает в сторону. Такие дела.

по центру я рисую этот же треугольник ещё раз только в 100 раз уменьшеный и ещё прямоугольник показывающий границы экрана.

kipar
Просьба указывать своё разрешение экрана. Я думаю на другом разрешении баг не воспроизведётся :(

#4
18:55, 25 июня 2014

не похоже на хардварный баг, больше похоже на неочиситку чего либо, буфферов, состояний итд

#5
18:59, 25 июня 2014
Adler
> У меня триугольник не правильно отрисовывается

А он и неправильно называется :)

#6
19:17, 25 июня 2014

Arxon
Я не понимаю какие состояния надо выставить чтобы вместо одного треугольника нарисовались два фрагмента? Если только забыть экран очистить. Но у меня он каждый кадр весь очищается. Да и вообще баг я обнаружил на сложной сцене где этот треугольник рисовался с текстурой. Тоесть проблема точно не в том что я забыл почистить экран.

innuendo
Спасибо. Исправил.

#7
19:43, 25 июня 2014

Intel HD4600, бага нет.

#8
19:51, 25 июня 2014

Adler
попробуй дальнюю плоскость отсечения приблизить для начала.

#9
20:55, 25 июня 2014

>>Я не понимаю какие состояния надо выставить чтобы вместо одного треугольника нарисовались два фрагмента?
Состояния задания смешений в вершинном или индексном буффере, неправильное колличество треугольников, еше много всяких влагов есть по работе с глубиной и фрустумом

#10
21:28, 25 июня 2014

Adler
> Просьба указывать своё разрешение экрана. Я думаю на другом разрешении баг не
> воспроизведётся :(
о, у меня как раз на домашнем ноуте 1366*768. Intel HD Graphic на Core i3, бага нет.

#11
22:28, 25 июня 2014

Super_inoy
>
> попробуй дальнюю плоскость отсечения приблизить для начала.
Попробовал поменять MinZ и MaxZ в D3DVIEWPORT9 - та же фигня.
А вот если увеличивать X,Y,Width,Height на +1 .. +10, то баг воспроизводиться немного по другому.

Вообще баг очень капризный, если я например вот это:

qDev.AddTris(2,1,0); //Этим методом индексы вершин в индексный буфер записываются.
заменю на вот это:
qDev.AddTris(1,0,2);
То баг кудато исчезает.

у меня всегда
    pDev->SetRenderState(D3DRS_LIGHTING,false);
    pDev->SetRenderState(D3DRS_ZENABLE,false);
    pDev->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);

Arxon
> Состояния задания смешений в вершинном или индексном буффере, неправильное
> колличество треугольников, еше много всяких влагов есть по работе с глубиной и
> фрустумом
Да вроде с этим всё нормально.

kipar
> о, у меня как раз на домашнем ноуте 1366*768. Intel HD Graphic на Core i3, бага
> нет.
А у меня Celeron T3000. Ладно, навряд ли я найду тут кого-то с таким же CPU/GPU. Тогда будем считать, что у меня бракованая|неисправная GPU или драйвер к ней. :(

+ Показать

Всем спасибо! Тему закрывать не буду, вдруг всё же у кого-то ещё кроме меня этот баг воспроизведётся.

#12
23:15, 25 июня 2014

Поменял индексы местами...
wtf2 | [Direct3D9] Потестите на intel`овских GPU.

Раздумываю над тем чтобы выкинуть ноут :(

#13
23:37, 25 июня 2014

Adler
> Попробовал поменять MinZ и MaxZ в D3DVIEWPORT9 - та же фигня.
ты их как и насколько менял-то? Просто есть у меня дурные подозрения что в говномамонтовом интеле z буфер 16-ти битный, а в норм видяхах 24-х

#14
23:56, 25 июня 2014

Super_inoy
> ты их как и насколько менял-то?
Я вообще не понимаю нафиг их менять? У меня всё в 2D и Z-test выключен, а все вершины с z=0.
Вот ещё раз потестил:
D3DVIEWPORT9 ViewPort={0,0,ClientSize.x,ClientSize.y,-1.f,+1.f};
D3DVIEWPORT9 ViewPort={0,0,ClientSize.x,ClientSize.y,-10.f,+10.f};
D3DVIEWPORT9 ViewPort={0,0,ClientSize.x,ClientSize.y,0.f,+1.f};
D3DVIEWPORT9 ViewPort={0,0,ClientSize.x,ClientSize.y,1.f,+2.f};
D3DVIEWPORT9 ViewPort={0,0,ClientSize.x,ClientSize.y,0.f,+10.f};

Super_inoy
> Просто есть у меня дурные подозрения что в говномамонтовом интеле z буфер 16-ти
> битный, а в норм видяхах 24-х
Но если z-test выключен то один фиг какой там z-буфер, да?

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

Тема в архиве.