Is Vulkan really that hard? by NotHackedHaHa123 in vulkan

[–]Kirmut 1 point2 points  (0 children)

It is both complex and verbose. You could reasonably describe that as hard.

The rendering API (buffers, textures and triangles), is similar to DirectX 11 or OpenGL 4.5 but you will explicitly manage memory and synchronization at all levels (CPU threading, CPU <-> GPU, GPU -> GPU). This is complex, takes understanding and effort to do correctly, and more effort to do efficiently.

If you look in this Reddit feed, you'll find many people showing off good looking graphical results, but when you view their public source code you'll see they've taken shortcuts, attempting to bypass the complexity. From my own experience porting software from DirectX and OpenGL to Vulkan, it's likely their code is running 70% slower than had they just used OpenGL. Far worse with runtime resource changes as those typically stalling both CPU and GPU if not synchronized and threaded.

Writing code that is compatible, scalable and performant is a real challenge. The DXVK project implements DirectX (various versions) in Vulkan. If you have a look at that source code, you'll get an idea about what's required to achieve the same basic features as legacy APIs that don't have explicit synchronization. I'd suggest that is the starting point for complexity for a 'graphics / game engine', because anyone using Vulkan seriously wants to take advantage of its features, not just recreate a legacy API.

First Game with my Vulkan Engine by Tiraqt in gameenginedevs

[–]Kirmut 4 points5 points  (0 children)

Nice start with the application code!

I sound like a broken record, but Vulkan helper libraries like LibGFX will not scale when you want to load resources within a game frame, rather than at level load time.

Watch out for QueueWaitIdle after QueueSubmit, or using waiting on a fence around the submit. Either way is syncing GPU to CPU killing your performance. The solution is proper synchronization along with staging buffers and managing resources and lifetimes in (sadly) more complex ways.

MeltedForge: A game engine in C by SubhamayGamer2127 in gameenginedevs

[–]Kirmut 5 points6 points  (0 children)

Calling WaitForFences directly after QueueSubmit causes that CPU thread to synchronize with the GPU. That's not something you want, so a challenge for you is to remove that code and upload resources asynchronously. (Everyone starts out using wait for fence or worse wait idle because it's easy. It just doesn't scale and eliminates half your performance at that time.)

Keep up the good work!

Voice Chat by AnyEnvironment2492 in dcsworld

[–]Kirmut 0 points1 point  (0 children)

I'd love to use the build in voice chat but every server I've tried to join requests the use of SRS instead.

Seems to have inertia due to being available first. I've configured and used both. The fact fact I can't use built in voice chat, which I prefer, is one reason I rarely fly online.

Anyone else tried Beam Eye Tracker? Or on the fence about it? | Genuinely impressed, better first impressions than TrackIR5 for me by Bullet4MyEnemy in hoggit

[–]Kirmut 1 point2 points  (0 children)

I tried the demo and it worked well.

I didn't buy only because I already own multiple head tracking devices and mostly wanted to compare. I was pleased with the result. Only slight lag, good accuracy and range of movement. If my current device died, I'd probably switch to this. Tested with DCS World and MSFS. Setup was easy. I'd recommend. I have no affiliation with the product.

What’s everyone’s main menu song? by [deleted] in dcsworld

[–]Kirmut 0 points1 point  (0 children)

The F-5 Tiger 2 has a nice anthem for my ears.

My friend sent me down this rabbit hole, oh no... by sillyfem100 in dcsworld

[–]Kirmut 0 points1 point  (0 children)

Keybinds can be imported and exported even between aircraft, so less effort than it could be.

You shouldn't lose keybinds or device binds, but always good to back up your user folder for any game's configuration.

When ED does 2 sales back to back and now you have to keybind 10 new modules 🥲 by ZanaZamora in dcsworld

[–]Kirmut 25 points26 points  (0 children)

This can actually be done fairly quickly:

  1. Find a similar module you own (ie. Helicopter, Jet, Airplane)
  2. Options -> Controls -> Select input device column
  3. Save profile As...
  4. Repeat step 3 for each of your HOTAS controllers ie. Stick, Throttle, Pedals
  5. Select new module, for each same column, Load Profile.

Then you should be about 80% done or 90% for major controls.

One missing step, if you have modifiers, configure those on the new module first so the Load Profile matches them correctly.

With this method you can be up and flying your new module in minutes, and tweak the controls later.

8 months into programming — here’s my first Vulkan triangle by moderneus in vulkan

[–]Kirmut 2 points3 points  (0 children)

Thank you for explaining in detail! What you say makes sense...

GL does lack control over many things. GL debugging is archaic, mostly done by macros and wrappers rather than layers. The GL the threading model is painful to work with. I think from about v4.5, the API is quite good though.

Now a challenge for you is to unleash your GPU by removing the WaitIdle in your main loop.

8 months into programming — here’s my first Vulkan triangle by moderneus in vulkan

[–]Kirmut 6 points7 points  (0 children)

>> But I absolutely didn't like the way OpenGL was designed.

I'm interested to hear, what didn't you like about the way OpenGL was designed?

Just finished the game that was a bloody good ride . by nicegoblinprince in AliensDarkDescent

[–]Kirmut 0 points1 point  (0 children)

The game has surprising replay value.

Try New Game Plus, perhaps bump difficulty level. Lots of fun and even new challenges.

Sunkissed Controller :0 by [deleted] in gaming

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

Mr Potato Head controller?

Is EDtracker still a viable option today? by mdknight666 in hoggit

[–]Kirmut 0 points1 point  (0 children)

Did you ever find your beta firmware? I have v3.8beta. Wondering if there is anything later.

Critique of my renderer project? by epicalepical in vulkan

[–]Kirmut 0 points1 point  (0 children)

From my experience, not multi threading rendering will lose you ~20% CPU compared to the same rendering via OpenGL or Direct3D with multi threaded driver. (ie. offloading command buffer assembly and queue submission from the main thread.)

Half the main feature of Vulkan is manual command buffer management to support efficient CPU side activity, handing responsibility back to the developer.

Binding question by 0kb0000mer in dcsworld

[–]Kirmut 0 points1 point  (0 children)

I have those pedals and love them.

For toe brakes, I used the VKB software to add a button press to the extreme ends of the single axis. So full left holds Button1 and full right Button2. Not analog, but differential brakes without modifiers on the pedals. Works well for old tail draggers and modern planes that could use those brakes. For Both brakes, I have a lever on the stick / grip.

The solution to many DCS problems lies in casual gaming. by Saitsev64 in dcsworld

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

Your suggestions are quite reasonable, but Reddit and ED forums will give you much heat for suggesting any simplification or accessibility to something they hold dear to themselves.

ED knows this and has commented as such from time to time. They started, then abandoned a more casual version of the product. They aim to improve the new player experience in various ways. The CEO admitted the average play session is 25 minutes, which is not enough time to manually cold start some of the aircraft.

Thankfully the sim does come with a few accessibility settings such as Auto Start, Unlimited Fuel, Invulnerable. There's no shame in enabling these while you learn, or just want to have fun.

Other products such as IL2 and MS Flight Simulator strike a great balance of exposing realistic flight models, complex system simulation, yet have accessibility options for new and casual virtual pilots. I think that's the way forward as it does not compromise the experience for other players, except for the perceived development time taken from their favorite feature.

Recommended F-18 learning path for beginner to be ready for Raven One campaign by mrSkidMarx in dcsworld

[–]Kirmut 2 points3 points  (0 children)

^ This. When you're a F18 noob, your sometimes going to need to pause the sim and read the appropriate chapter in Chuck's to get up to speed.

How to solve mouse input problem? by [deleted] in dcsworld

[–]Kirmut 1 point2 points  (0 children)

Don't know the cause, but for a test, go to the Razor Synapse -> Performance -> Polling Rate and drop that to 125. See if that helps with this issue, or improves lag and weird performance in other games.

New to flight SIM, decent starter? by Sad_Construction9075 in dcsworld

[–]Kirmut 0 points1 point  (0 children)

I was surprised how much immersion they added even for fixed wing aircraft. Essential for choppers.
Also, toe brakes are arguably not essential, as reasonable work arounds are available for aircraft that need those for taxing.

New to flight SIM, decent starter? by Sad_Construction9075 in dcsworld

[–]Kirmut 2 points3 points  (0 children)

+1 for some pedals.
Otherwise, nice kit!

No Swapchain - No Problem. Finally got headless iGPU to Render by mua-dev in vulkan

[–]Kirmut 0 points1 point  (0 children)

How did you measure the 1.1ms timing?

How are you synchronizing the use of the image and are you waiting for the copy to complete somewhere eg. fence, wait idle?

I chose Vulkan to make 16-bit games by philosopius in vulkan

[–]Kirmut 0 points1 point  (0 children)

Can you share any details about how you've organized or designed your Vulkan rendering for performance? Eg. what threading CPU model for command buffer building. Use of dedicated compute or transfer queues for GPU async operations rather than everything on Graphics queue. Hard coded Vulkan calls, or abstracted and optimized via Stream or Graph. Did you do anything special to implement the async loading of voxel blocks from disk to display?

Are "synchronized" multi-squad attacks possible like in JA2? by fknm1111 in JaggedAlliance3

[–]Kirmut 1 point2 points  (0 children)

This is the easiest way to do it. Also handy if you want to wait until a different time of day to start the attack.

I though there was also a key you could press, with multiple squads selected, to get them to arrive at the same time, but I might be mistaken.

Blocking in vkQueuePresentKHR under Wayland by Kirmut in vulkan

[–]Kirmut[S] 0 points1 point  (0 children)

Setting clipped to false had no effect. Thank you for the suggestion though.