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

Vulkan API (вышел!) (755 стр)

Страницы: 1754 755 756 757761 Следующая »
#11310
(Правка: 16:25) 16:01, 18 мая 2024

luckyleo769
Ты не понял... Просто ret есть но он нужен как выход из подпрограммы а прервать вертексный как и геометрический нельзя иначе будет хрень как и этот телепузик
Пиксел ный  можно прервать так это конец конвейера

#11311
17:11, 18 мая 2024

innuendo
Все теперь понял, согласен, пайплайн прервать нельзя
Припаивал мышку к hdmi...

#11312
17:38, 18 мая 2024

luckyleo769
Ну на самом деле можно в геометрическом или  hull шейдере генерить в ноль но это не простой рет

#11313
17:53, 18 мая 2024

innuendo
Да, а рет просто выход из подпрограммы или основного кода, но не остановка пайплайна.

#11314
(Правка: 18:31) 18:27, 18 мая 2024

https://habr.com/ru/articles/772066/

    Не всё делается "маленькими" ядрами GPU!

    Может быть несколько параллельно работающих пайплайнов!

А Вулкан и Directx 12 не даёт нам самостоятельно управлять параллельными пайплайны как мы хотим.
Драйвера и api нас уже ограничивают в работе с видеокартой.

#11315
15:23, 19 мая 2024

luckyleo769
Хотя и после риксельного можно поставить маску и делать только в стенсил :)

#11316
(Правка: 21:05) 20:37, 21 мая 2024
typedef struct VkDescriptorSetLayoutBinding {
    uint32_t              binding;
    VkDescriptorType      descriptorType;
    uint32_t              descriptorCount;
    VkShaderStageFlags    stageFlags;
    const VkSampler*      pImmutableSamplers;
} VkDescriptorSetLayoutBinding;

Где можно посмотреть лимит на descriptorCount и есть ли он вообще? В спеке вроде ничего про это не сказано. Речь не про ImmutableSamplers, а про обычные сэмплеры, короче про массив обычных текстур uniform Sampler2D.

#11317
21:21, 21 мая 2024

Написать тест, что генерирует 2048 текстур и падает?

#11318
21:43, 21 мая 2024

fake.pdf
> 2048
У меня не падал и при 50'000 дескрипторов (вроде).

#11319
23:48, 21 мая 2024

dominator
> про обычные сэмплеры
maxPerStageDescriptorSamplers и/или maxDescriptorSetSamplers, не?

VUID-VkPipelineLayoutCreateInfo-descriptorType-03028
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers.

maxDescriptorSetSamplers is the maximum number of samplers that can be included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this limit. Only descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit.

#11320
8:08, 22 мая 2024

Dinosaur
> maxPerStageDescriptorSamplers и/или maxDescriptorSetSamplers, не?
Походу оно! Ништяк, у меня эта два параметра равны между собой и равны ~миллиону (1048576), круто!

#11321
11:20, 22 мая 2024

Я что-то делаю не так или компиляторы GLSLang и Shaderc не способны развернуть простейший цикл в GLSL?
При попытке компиляции такого кода

for (int i = -1; i <= 1; i++)
{
  for (int j = -1; j <= 1; j++)
  {
    MinColor = min(MinColor, textureLodOffset(sampler2D(InputTexture, BiLinearSampler), PreviousSampleLocation, 0.0f, ivec2(i, j)).rgb);
    MaxColor = max(MaxColor, textureLodOffset(sampler2D(InputTexture, BiLinearSampler), PreviousSampleLocation, 0.0f, ivec2(i, j)).rgb);
  }
}

жалобы на то, что последний аргумент textureLodOffset - не константа времени компиляции. Пробовал вот так:

#extension GL_EXT_control_flow_attributes : require

[[unroll]]
for (int i = -1; i <= 1; i++)
{
  [[unroll]]
  for (int j = -1; j <= 1; j++)
  {
    MinColor = min(MinColor, textureLodOffset(sampler2D(InputTexture, BiLinearSampler), PreviousSampleLocation, 0.0f, ivec2(i, j)).rgb);
    MaxColor = max(MaxColor, textureLodOffset(sampler2D(InputTexture, BiLinearSampler), PreviousSampleLocation, 0.0f, ivec2(i, j)).rgb);
  }
}

- не помогает.
Причём аналогичный вариант на HLSL компилируется этими же компиляторами нормально. Также, если этот шейдер использовать в OpenGL напрямую (т. е. не транслируя в SPIRV), то тоже компилируется и работает нормально (по крайней мере, на NVIDIA).
Кто-нибудь знает, почему так?

#11322
11:33, 22 мая 2024

prowkan
Оффсетв должны быть константами ?

#11323
12:36, 22 мая 2024

prowkan
https://github.com/KhronosGroup/glslang/issues/2178

#11324
12:45, 22 мая 2024

Несколько лет назад видел пост про проблему на гл ... В директе немного по другому

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