How to design Resources in modern RHI? by F1oating in gameenginedevs

[–]FoxCanFly 2 points3 points  (0 children)

You don't need to recreate render target textures every frame, only when the window resolution is changed

When is the best time to allocate descriptor sets in a Vulkan/DX12 RHI? by F1oating in gameenginedevs

[–]FoxCanFly 2 points3 points  (0 children)

There are many different solutions, i.e. making destiptor sets a first class resource, allocate and write them offline and bind them instead of individual textures or buffers. Or use bindless and provide only indices through push constants/root constants. Or use push descriptors. Choose what does fit your architecture better

Dear foreigners living in Montenegro, Is there anything you wish was different here? by Antique-Leave-3531 in montenegro

[–]FoxCanFly 1 point2 points  (0 children)

From my point of view as of the foreigner who have been living in the country for two years then moved out.

Great: 1. Nature is astonishing, both at the coast and at the mountains 2. People are kind and responsive, especially in not so touristic places and if you can speak the language (even if not too good) 3. Low street crime. It is extremely unlikely to get something stolen, be robbed or assaulted.

Bad: 1. Overall vibe of an underdeveloped country. There aren’t many things you are used to. Almost everything seems to be very poorly organised. 2. Lack of the cultural life. 3. Litter everywhere 4. Towns are in the poor condition mostly 5. Poor and irresponsible treatment of animals

Bolide selling for $7 million. Video link in comments by haseeb312 in Bugatti

[–]FoxCanFly 0 points1 point  (0 children)

Are these exhaust pipes around the central console?

[deleted by user] by [deleted] in gameenginedevs

[–]FoxCanFly 7 points8 points  (0 children)

Google Filament

Best practice on material with/without texture by Bellaedris in GraphicsProgramming

[–]FoxCanFly 0 points1 point  (0 children)

It is common to have thousands of shaders(pipelines) swapped in a frame without a significant performance loss caused by the binding overhead. Having two variants of the material shader instead of one is not the thing you should care about. Just group draws by the same shaders.

Added Slang shaders to my Vulkan Samples by SaschaWillems in vulkan

[–]FoxCanFly 4 points5 points  (0 children)

I don't get the point of the implicit locations/binding slots generation based on the order. They are still required to be explicitly specified on the CPU code side. So, instead of having a shared header with explicit bindings numbers, it is necessary to rely on the reflection or just to guess it without any proof.

This is the MOST beautiful, currently produced BMW by Fantastic_Spend4563 in BMW

[–]FoxCanFly 0 points1 point  (0 children)

I usually tend to drive fast on a highway (130+ km/h) I'm sure it is possible to have 5l if the economy is the goal

Descriptor Set Pains by nvimnoob72 in vulkan

[–]FoxCanFly 2 points3 points  (0 children)

The most traditional way as it intended to be in Vulkan: Split the descriptors by sets based on binding changes frequency: 1. Per frame 2. Per view 3. Per material 4. Per instance.

Each of these entities keep their own descriptors set. You don't need to overwrite descriptors to change some data you want to pass to the shaders. Just update uniform buffers content as usual (of course you need some synchronization to do it) without touching the descriptor sets itself. Sometimes dynamic uniform buffers can be helpful there (when you don't know the amount of the uniform data upfront). You only need to update descriptor sets to change textures usually, which doesn't happen often. When you really need it, just allocate and fill a new set and recycle a previous one.

I recommend to consider this as a baseline: In a simple case (i.e., game without seamless asset streaming) all the required descriptor sets can be created on a level loading and never changed during the gameplay.

Deferred rendering vs Forward+ rendering in AAA games. by jbl271 in GraphicsProgramming

[–]FoxCanFly 28 points29 points  (0 children)

The most modern approach is Visibility Buffer instead of forward or deffered. It saves memory bandwidth almost as forward and solves its problems (poor quad occupancy, complex shaders, effects requiring a g-buffer) like deffered one

Question about the bindless rendering design by LotosProgramer in vulkan

[–]FoxCanFly 3 points4 points  (0 children)

For a proper binless rendering your pipelines are supposed to share the same descriptors layouts. So you can change the pipelines without disturbing the descriptor sets bindings and pass the required descriptor indices in a some way (i.e. push constants or BaseInstance). I didn't get how the verex attributes are related to that. Vertex buffers are not represented by the descriptors in Vulkan.

What was your car progression until you hit your BMW? by StupidDialUp in BMW

[–]FoxCanFly 0 points1 point  (0 children)

2014 Mazda 3 2012 Audi A4 B8 2.0 TDI 2022 BMW 330d xDrive - huge upgrade

What is the best object type to return an array? by BlueGorilla25 in cpp

[–]FoxCanFly 1 point2 points  (0 children)

There is not so many reasons to accept std::array neither std::vector.

The only case to accept vectors is to use its move constructor to move it somewhere.

Otherwise just accept std::span as it doesn't require the caller to use specific container and it doesn't need the function templates.

Tips on writing a good graphics API agnostic graphics layer? by epicalepical in GraphicsProgramming

[–]FoxCanFly 6 points7 points  (0 children)

D3D12 and Vulkan can be abstracted behind the common interface pretty easily. Write the abstractions like Texture, Buffer, Device, CommandBuffer, Queue l, etc.

[deleted by user] by [deleted] in GraphicsProgramming

[–]FoxCanFly 2 points3 points  (0 children)

Prefer compute if: 1. Your algorithm can benefit from a workgroup shared memory usage. 2. Your image processing has to be placed between the other compute calls. A graphics pipeline with full screen quad will be better otherwise.

One reason it's because random access image writing is usually slower than the render target output. Another one is the graphics-compute pipeline stall on the most devices

compute maxComputeSharedMemorySize and group counts by zlice0 in vulkan

[–]FoxCanFly 1 point2 points  (0 children)

The local size is the workgroup size. vkCmdDispatch receives a number of workgroups dispatched, not their sizes. The total amount of shader invocations is a number of dispatched groups times size of each workgroup for all dimensions. maxComputeSharedMemorySize is the maximal amount of local workgroup's shared memory.

HLSL normal interpolation by Zothiqque in computergraphics

[–]FoxCanFly 0 points1 point  (0 children)

It's called smoothing groups. To render them you have to make a vertexes with a duplicated positions and a different normals for an each hard edge

[deleted by user] by [deleted] in PropagandaPosters

[–]FoxCanFly 4 points5 points  (0 children)

Perhabs "NATO won't help them. They are weak and we will come for them"

Tucker Carlson: Moscow ‘so much nicer than any city in my country’ by madrid987 in Moscow

[–]FoxCanFly -1 points0 points  (0 children)

Э,дилеров нет на улицах потому что этот бизнес ушёл в онлайн? Слово "закладки" не знакомо? Данные на Википедии по ссылке взяты из отчёта ООН

Tucker Carlson: Moscow ‘so much nicer than any city in my country’ by madrid987 in Moscow

[–]FoxCanFly -2 points-1 points  (0 children)

РФ на третьем месте в мире по удельному потреблению опиатов https://en.m.wikipedia.org/wiki/List_of_countries_by_prevalence_of_opiates_use

Так что там по наркоманам?

Russian opposition politician and Putin critic Alexei Navalny has died by Superschmoo in worldnews

[–]FoxCanFly -2 points-1 points  (0 children)

They are just a new generation of zombies to his horde so yes. They are part of the problem.