The Still New What Did You Last Do Thread
-
- Posts: 3391
- Joined: Thu Jul 05, 2007 4:53 pm
- Location: opening the forbidden box
Re: The Still New What Did You Last Do Thread
I have one transition in my code ATM, to transition the swapchain provided image into a present capable mode, but then I started looking at code and I rarely see anything actually transition anything from undefined to present, usually going from present to present, to change queue ownership in the 1% offchance an implementation doesn't support present on a graphics queue. The validation layer is very unhappy about me trying to clear a image in the present layout, pointing me to a valid usage requirement that... doesn't exist in the spec. I guess it doesn't realize that the swapchain extension is loaded and removes that specific requirement. Good start. The other message it throws is more legit, the swapchain provided images don't support transfer and clears outside of a render pass are transfer commands, not drawing commands. But it works anyways, so I guess AMD's smug about conformance to image layouts but anything else is up to random whims. But hey, maybe AMD's not the sole entity responsible for that even existing in the specification.
I wanted to learn something else to escape the nightmare that is OpenGL context creation. Also the nightmare that is AMD's GLSL compiler. You need an OpenGL context on Windows to load the functions you need to specify advanced context creation parameters, so you need to create a context, get your functions, destroy the context, and then use those functions to make a new context. Also instead of explicitly asking for exclusive fullscreen, it just guesses if you make a fullscreen window, which was a utter mess to work around when writing the borderless window option in my Descent 3 patcher. But with implementations present that actually work on other platforms like Linux, maybe it's high time I actually learn a little Direct3D.
(side note: I'm actually relatively curious how nvidia and other manufacturers represent images in gpu memory on the grounds that layouts don't matter to them. I've always heard graphics card hardware would occasionally pack memory different, like even back in the 90s 3DFX cards packing blocks of 2x2 texels together for faster filtering, but does stuff like this remain today and companies that aren't AMD can do the transitions silently?)
(other side note: I realize at this point how fucking stupid I am for continuing to buy AMD. I avoided nvidia for eons because of their dominant place in the market allowing them the ability to do whatever they want. Logins required to merely use their configuration software, then they stick it on the MS store for no good reason. If no competition existed, I'm sure they'd also start jacking prices way more. But what do my morals mean here, anyways? This was inevitably going to happen, so I'm wondering if I should just let it happen sooner so I can get used to it)
I wanted to learn something else to escape the nightmare that is OpenGL context creation. Also the nightmare that is AMD's GLSL compiler. You need an OpenGL context on Windows to load the functions you need to specify advanced context creation parameters, so you need to create a context, get your functions, destroy the context, and then use those functions to make a new context. Also instead of explicitly asking for exclusive fullscreen, it just guesses if you make a fullscreen window, which was a utter mess to work around when writing the borderless window option in my Descent 3 patcher. But with implementations present that actually work on other platforms like Linux, maybe it's high time I actually learn a little Direct3D.
(side note: I'm actually relatively curious how nvidia and other manufacturers represent images in gpu memory on the grounds that layouts don't matter to them. I've always heard graphics card hardware would occasionally pack memory different, like even back in the 90s 3DFX cards packing blocks of 2x2 texels together for faster filtering, but does stuff like this remain today and companies that aren't AMD can do the transitions silently?)
(other side note: I realize at this point how fucking stupid I am for continuing to buy AMD. I avoided nvidia for eons because of their dominant place in the market allowing them the ability to do whatever they want. Logins required to merely use their configuration software, then they stick it on the MS store for no good reason. If no competition existed, I'm sure they'd also start jacking prices way more. But what do my morals mean here, anyways? This was inevitably going to happen, so I'm wondering if I should just let it happen sooner so I can get used to it)
-
-
- Posts: 3130
- Joined: Sat May 28, 2016 1:01 pm
Re: The Still New What Did You Last Do Thread
I am also using Vulkan for my 3D stuff due to the better driver situation. Still, it was a truly horrible experience learning this overcomplicated beast.
*) Of course if you profile that and determine that the general layout is actually more efficient for your use case then you'll have to suffer reading validation performance warnings every time you debug something.
I think either the hardware handles it completely automatically or their drivers already does it based on heuristics (that they had to have anyway for OpenGL and Direct3D 11). The sampler units also have caches and maybe when it loads the image into the cache it does the transformation automatically. Or maybe they determined it wasn't worth it to do the transformations at all and just went for a generic format for simplicity. The catch with the most optimal formats for sampling is that it is also the worst when you use it for the frame buffer. With gbuffers and such it might not be worth it to do all those transformations (*).I'm actually relatively curious how nvidia and other manufacturers represent images in gpu memory on the grounds that layouts don't matter to them
*) Of course if you profile that and determine that the general layout is actually more efficient for your use case then you'll have to suffer reading validation performance warnings every time you debug something.
-
- Lead GZDoom+Raze Developer
- Posts: 49175
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: The Still New What Did You Last Do Thread
From what I read, NVidia does not use these different image representations at all. All images are in a sane generic format.
All this nonsense comes from AMD who could not keep their stuff simple and had to enforce this utterly insane image management. And of course their technicians proudly proclaim that in order to make stuff work on their hardware, one has to follow the specs to the letter, or else...
I never looked into DX12 whether it forces the same insanity (as I see no point locking stuff I write to Windows 10), but right now, if I had to do 3D stuff I'd probably use DX11 as my API of choice. We're already at the point where there's no API that reliably targets the 3 main OSs so I may just stick to one that's available on the majority platform.
For fuck's sake - all I want is an API that gives me command buffers but allows me to defer the rest of the low level shit to the driver. This Vulkan shit is so invasive that it makes it nearly impossible to get the good stuff out of it.
All this nonsense comes from AMD who could not keep their stuff simple and had to enforce this utterly insane image management. And of course their technicians proudly proclaim that in order to make stuff work on their hardware, one has to follow the specs to the letter, or else...
I never looked into DX12 whether it forces the same insanity (as I see no point locking stuff I write to Windows 10), but right now, if I had to do 3D stuff I'd probably use DX11 as my API of choice. We're already at the point where there's no API that reliably targets the 3 main OSs so I may just stick to one that's available on the majority platform.
For fuck's sake - all I want is an API that gives me command buffers but allows me to defer the rest of the low level shit to the driver. This Vulkan shit is so invasive that it makes it nearly impossible to get the good stuff out of it.
-
-
- Posts: 16891
- Joined: Tue Oct 02, 2012 2:20 am
- Location: An ancient Escape Shuttle(No longer active here anymore)
Re: The Still New What Did You Last Do Thread
I've been struggling with the IRL stuff and a little bit of family crisis, but man i can't stop making animations despite all that huh
-
-
- Posts: 3130
- Joined: Sat May 28, 2016 1:01 pm
Re: The Still New What Did You Last Do Thread
I couldn't agree more. Maybe someone will make a higher level wrapper that looks roughly like D3D11 on top of Vulkan. Sometimes I dream of doing that but I fear what overhead it might have. Make the tiniest mistake in that regard and people won't use it as it would be too high. My vulkan wrapper classes was an attempt at doing a minimal improvement, but it wasn't enough to truly help.Graf Zahl wrote:From what I read, NVidia does not use these different image representations at all. All images are in a sane generic format.
All this nonsense comes from AMD who could not keep their stuff simple and had to enforce this utterly insane image management. And of course their technicians proudly proclaim that in order to make stuff work on their hardware, one has to follow the specs to the letter, or else...
I never looked into DX12 whether it forces the same insanity (as I see no point locking stuff I write to Windows 10), but right now, if I had to do 3D stuff I'd probably use DX11 as my API of choice. We're already at the point where there's no API that reliably targets the 3 main OSs so I may just stick to one that's available on the majority platform.
For fuck's sake - all I want is an API that gives me command buffers but allows me to defer the rest of the low level shit to the driver. This Vulkan shit is so invasive that it makes it nearly impossible to get the good stuff out of it.
-
- Posts: 3391
- Joined: Thu Jul 05, 2007 4:53 pm
- Location: opening the forbidden box
Re: The Still New What Did You Last Do Thread
Honestly, when I sit down and read practical things about vulkan I start seeing the appeal (though it certainly doesn't offer any excuses for image layouts...) but man. Then I also start sitting down and asking questions about how much I really want to do. A lot of this optimization completely flies over my head, my graphics programming knowledge isn't that great. If you gave me a specific feature from a game, I possibly could do it, I've read a lot of the graphics studies from Doom 2016 and Eternal and all of that and I get them, but architecting a full renderer and implementing optimizations at this level is far beyond what my current knowledge is. Vulkan is great for these cases, and while I can take away some lessons from that article for my own work, I run into problems that a lot of my use cases aren't well suited for these optimizations. Stuff like making a new renderer for Descent 3 that uses the original interface that's designed for a number of immediate mode APIs (a software renderer, OpenGL 1.1, Glide, and early Direct3D)
So basically I keep on asking how much I'm actually able to get out of this. I'm going to stick to learning it, maybe I will need it in the future, but it certainly is frustrating that there's no happy medium ground here. On one hand, I could go back to OpenGL, and then continue to fight with context creation being an act of god. I could continue to fight with AMD's shader compiler. I could fight with tons of legacy baggage and the like. Or I could continue on with Vulkan and completely bloat the complexity of my code for a minor speed boost, assuming I don't make a big mistake or something.
So basically I keep on asking how much I'm actually able to get out of this. I'm going to stick to learning it, maybe I will need it in the future, but it certainly is frustrating that there's no happy medium ground here. On one hand, I could go back to OpenGL, and then continue to fight with context creation being an act of god. I could continue to fight with AMD's shader compiler. I could fight with tons of legacy baggage and the like. Or I could continue on with Vulkan and completely bloat the complexity of my code for a minor speed boost, assuming I don't make a big mistake or something.
-
-
- Posts: 375
- Joined: Mon Jun 27, 2016 7:26 pm
- Preferred Pronouns: He/Him
- Graphics Processor: nVidia with Vulkan support
Re: The Still New What Did You Last Do Thread
DXVK is a Direct3D9/10/11-to-Vulkan translation layer, often used alongside WINE to run Windows games with better performance under Linux. There's also DXVK-Native, which is a version of DXVK which can be compiled into a shared library for Linux.
On the other hand, Warzone 2100 uses ANGLE to translate OpenGL ES to Vulkan, and there's also a graphics library called bgfx.
On the other hand, Warzone 2100 uses ANGLE to translate OpenGL ES to Vulkan, and there's also a graphics library called bgfx.
-
- Spotlight Team
- Posts: 1089
- Joined: Mon Nov 25, 2019 8:54 am
- Graphics Processor: Intel (Modern GZDoom)
Re: The Still New What Did You Last Do Thread
* New PC that actually runs GZDoom
** Upgraded to 16 GB RAM
* Two SSD's for my thin clients
* an 8 GB upgrade for one of them which as 2 GB RAM
* Using that now spare 2 GB ram to upgrade my other thin client which maxes out at 4 GB.
* Given a free PlayStation 3. Its a bit butched up, but if it runs, ill turn that thing into a Doom machine using Libretro PrBoom.
* Found a box of completely unused thin clients (size of a phone). Pretty nifty: Dual core AMD, 2 GB RAM, 8 GB DOM (Disk-on-Module, kind of like a SSD) and no upgrade path. That could do well as a streaming device for Youtube and Spotify (Has 1080p video playback)
In a week's time i have gotten the equivalent of a household in computing stuff. Ill know what to do when im on holiday.
** Upgraded to 16 GB RAM
* Two SSD's for my thin clients
* an 8 GB upgrade for one of them which as 2 GB RAM
* Using that now spare 2 GB ram to upgrade my other thin client which maxes out at 4 GB.
* Given a free PlayStation 3. Its a bit butched up, but if it runs, ill turn that thing into a Doom machine using Libretro PrBoom.
* Found a box of completely unused thin clients (size of a phone). Pretty nifty: Dual core AMD, 2 GB RAM, 8 GB DOM (Disk-on-Module, kind of like a SSD) and no upgrade path. That could do well as a streaming device for Youtube and Spotify (Has 1080p video playback)
In a week's time i have gotten the equivalent of a household in computing stuff. Ill know what to do when im on holiday.
-
- Posts: 566
- Joined: Mon Oct 09, 2017 8:11 pm
- Graphics Processor: nVidia (Modern GZDoom)
- Location: Mister Rogers Neighborhood, Pennsylvania
Re: The Still New What Did You Last Do Thread
Chased my first Tornado warned storm this week. I love a good Adrenaline rush.
-
-
- Posts: 16891
- Joined: Tue Oct 02, 2012 2:20 am
- Location: An ancient Escape Shuttle(No longer active here anymore)
Re: The Still New What Did You Last Do Thread
oboy finally
-
-
- Posts: 26556
- Joined: Tue Jul 15, 2003 4:58 pm
- Location: Scotland
Re: The Still New What Did You Last Do Thread
Reinstalled and played Heavy Metal F.A.K.K. 2. (plus a HR texture pack from ModDB). It's a flawed game (which uses the Quake III engine, with some enhancements), but still good fun and has a lot of interesting elements that are not found in other Q3 games.
I also just learned that the real-life person who is the protagonist of the game (Julie Strain) died this year.
I also just learned that the real-life person who is the protagonist of the game (Julie Strain) died this year.
-
- Posts: 223
- Joined: Sun Nov 03, 2019 6:01 am
Re: The Still New What Did You Last Do Thread
Image is self-explanatory.
-
-
- Posts: 16891
- Joined: Tue Oct 02, 2012 2:20 am
- Location: An ancient Escape Shuttle(No longer active here anymore)
Re: The Still New What Did You Last Do Thread
So we can play Golden Souls in Zandronum, aka the most stable multiplayer doom launcher?
-
- Posts: 566
- Joined: Mon Oct 09, 2017 8:11 pm
- Graphics Processor: nVidia (Modern GZDoom)
- Location: Mister Rogers Neighborhood, Pennsylvania
Re: The Still New What Did You Last Do Thread
about as stable as a Vegas wedding on a drunk saturday night.Captain J wrote:So we can play Golden Souls in Zandronum, aka the most stable multiplayer doom launcher?
-
-
- Posts: 1811
- Joined: Sun Jul 21, 2019 8:54 am
Re: The Still New What Did You Last Do Thread
I've been learning how to use Blender for a while, as I'm not good with making new sprites.
This is my attempt at a humanoid: A dwarf with a hammer, because who doesn't like dwarves?
Blender will probably be the only program that I actually had to look up tutorials on how to use.
This is my attempt at a humanoid: A dwarf with a hammer, because who doesn't like dwarves?
Spoiler:It took a while, as I tried to brute-force my way through the program (to no effect), but I got the hang of the important parts after several tutorial videos.
Blender will probably be the only program that I actually had to look up tutorials on how to use.