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

Directx 12 вопросы. (35 стр)

Страницы: 134 35 36 3741 Следующая »
#510
17:37, 17 янв 2022

innuendo
> теперь расскажи, зачем тебе
Он мне незачем.

#511
17:45, 17 янв 2022

prowkan
ох, как я уже написал раньше - ты смешал всё в кучу, простой msaa и programable sample position
последнее хорошая фича для всяких MFAA шоб менять паттерн

На интегрированном ГП Ryzen 7 5800H не работает ResolveSubresourceRegion, в текстуру просто записываются нули. И это при том, что CheckFeatureSupport даёт ProgrammableSamplePositionsTier = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2

говорит о том, что ты не понимаешь, что из чего вытекает

+ Показать
#512
17:56, 17 янв 2022

innuendo
> ты смешал всё в кучу, простой msaa и programable sample position
Я вроде бы привёл ссылку на спецификацию, где ясно сказано, что ResolveSubresourceRegion требует Programmable Sample Positions на уровне Tier 1. Что не так?

#513
18:21, 17 янв 2022

prowkan
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12… esourceregion

где тут про Programmable Sample Positions ?

#514
18:50, 17 янв 2022

prowkan
> Я вроде бы привёл ссылку на спецификацию, где ясно сказано, что
> ResolveSubresourceRegion требует Programmable Sample Positions на уровне Tier
> 1. Что не так?

не так

D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1
Indicates that there's tier 1 support for programmable sample positions. In tier 1, a single sample pattern can be specified to repeat for every pixel (SetSamplePosition parameter NumPixels = 1) and ResolveSubResource is supported.


если D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 есть, то он требует наличия ResolveSubResource

#515
19:52, 17 янв 2022

innuendo
> где тут про Programmable Sample Positions ?
Повторяю ещё раз: https://microsoft.github.io/DirectX-Specs/d3d/ProgrammableSamplePositions.html

Device Removed if SetSamplePositions or ResolveSubresourceRegion called on device without Tier1 programmable sample positions support

> если D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 есть, то он требует наличия ResolveSubResource
По-видимому, там опечатка, и имелось в виду ResolveSubresourceRegion, а не ResolveSubResource.

#516
20:16, 17 янв 2022

prowkan
> ResolveSubresourceRegion

зайдём с другой стороны - как ты получаешь возможность вызова ResolveSubresourceRegion ?
через  ID3D12GraphicsCommandList1?
а его ты как получаешь ?

#517
5:35, 18 янв 2022

innuendo
> зайдём с другой стороны - как ты получаешь возможность вызова
> ResolveSubresourceRegion ?
> через ID3D12GraphicsCommandList1?
А что, есть другие варианты?
> а его ты как получаешь ?

Device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE::D3D12_COMMAND_LIST_TYPE_DIRECT, CommandAllocators[0], nullptr, __uuidof(ID3D12GraphicsCommandList), &CommandList);
CommandList->QueryInterface<ID3D12GraphicsCommandList1>(&CommandList1);
#518
9:02, 18 янв 2022

prowkan
> CommandList->QueryInterface<ID3D12GraphicsCommandList1>(&CommandList1);

если ты смог получить интерфейс CommandList1 (он не nullptr), то дальше ты должен чекать
D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 для вызова ResolveSubresourceRegion?

#519
10:54, 18 янв 2022

prowkan
Да, ошибка повторяется. Стало интересно, поотлаживаю. На AMD форум забей баг, поправят.
AMD Radeon Vega 6 | Directx 12 вопросы.
nVidia Geforce 1650 | Directx 12 вопросы.

#520
11:21, 18 янв 2022

prowkan

на rx580 красный фон

#521
12:11, 18 янв 2022

innuendo
> если ты смог получить интерфейс CommandList1 (он не nullptr), то дальше ты
> должен чекать
> D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 для вызова ResolveSubresourceRegion?
Разумеется.

Andrey
Я тут выше выяснил, что, возможно, проблема в том, какой я формат передаю в функцию. В исходной версии я передавал DXGI_FORMAT_D32_FLOAT_S8X24_UINT, и это работало на NVIDIA, но не работало на AMD.
В новой версии я передаю DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, и теперь всё работает и на AMD, и на NVIDIA.

+ Показать

К сожалению, чтение документации так и не прояснило, каким образом нужно выбирать формат.

#522
12:22, 18 янв 2022

prowkan
> Разумеется.

не соглашусь ... вам знакомы понятия необходимости и достаточности ?

где написано что ResolveSubresourceRegion не может работать с D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED?

PROGRAMMABLE_SAMPLE_POSITIONS это просто возможность задавать свой паттерн, но никак не возможность ресолва

#523
12:29, 18 янв 2022

prowkan
> К сожалению, чтение документации так и не прояснило, каким образом нужно
> выбирать формат.
Я тоже промучился с Typeless но потом наконец доправил Resolve Depth Buffers
Единственно смотреть что скажет Direct3D12 Debug.

а вообще есть простое соответвие. Я написал утилитные функции облегчающую работу:

DXGI_FORMAT GetDSVResolveFormat(DXGI_FORMAT d3dFormat)
{
  switch (d3dFormat) {
    case DXGI_FORMAT_R24G8_TYPELESS: {
      d3dFormat = DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
    }
    break;
    case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: {
      d3dFormat = DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
    }
    break;
    case DXGI_FORMAT_D24_UNORM_S8_UINT: {
      d3dFormat = DXGI_FORMAT_R24_UNORM_X8_TYPELESS;
    }
    break;
    default: {
    }
  }
  return d3dFormat;
}
#524
12:31, 18 янв 2022

prowkan
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12… etdepthbounds

вот тут чётко прописано

OMSetDepthBounds is an optional feature. Use the CheckFeatureSupport method to determine whether or not this feature is supported by the user-mode driver.

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