Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
exDM69
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
18 ms
·
151.
▲
by
exDM69
2y ago
RenderPasses can give some perf gain on mobile tiler hardware, but they don't really help on desktop hardware. A lot of content is ported from other APIs, and retrofitting render passes to an existing engine is not easy. I'm hopin
152.
▲
by
exDM69
2y ago
WGPU, like Vulkan 1.0, requires setting up RenderPasses up front, which is verbose and laborious. That is no longer needed in Vulkan 1.2 or newer, making it considerably simpler. That eliminates some of its advantage over Vulkan in terms of
153.
▲
by
exDM69
2y ago
Yeah, it is a lot of digging. I already dug out all of the roots I could, which meant digging a waist deep hole and taking half a ton of the root stuff to the recycling center (to be burned). But now I'm dealing with the remaining root
154.
▲
by
exDM69
2y ago
Yes, and you need to make sure that the upload has completed before you reuse the pixel buffer too. And the synchronization API isn't very awesome, it can only wait for all operations until a certain point have been completed. You can&
155.
▲
by
exDM69
2y ago
It is possible but managing asynchronous transfers in OpenGL is quite tricky. You either need to use OpenGL sync objects very carefully or accept the risk of unintended GPU stalls.
156.
▲
by
exDM69
2y ago
Thanks for the update. Subgroups may seem like a minor feature, but they can unlock huge performance. I recently had a 10x perf boost with a very basic subgroup trick to let neighboring pixels collaborate on some expensive operations in fra
157.
▲
by
exDM69
2y ago
Please try again with Vulkan 1.3 and reassess how "terrible" the API is. And use some high level library like vk-bootstrap to do the boring init work. Because once it's set up, Vulkan 1.3 is about as easy as OpenGL (if you st
158.
▲
by
exDM69
2y ago
OpenGL can do threads with shared contexts but caveats apply so it is not popular. But even more common is mapping memory in "OpenGL thread" and then letting another thread fill the memory. Quite common is mapping buffers with per
159.
▲
by
exDM69
2y ago
Maybe you should look up its definition because that's not what invasive species means. They aren't called invasive species when they have arrived on their own without human intervention and then outcompete. Japanese Knotweed did
160.
▲
by
exDM69
2y ago
Its roots are very strong and go down 3 meters into the ground, known to destroy foundations of houses, under ground plumbing and wires and other infrastructure. Some of the roots I've dug out had about 8cm diameter and they were tough
161.
▲
by
exDM69
2y ago
I'm starting to suspect that this plant either violates the laws of thermodynamics, works by geothermal energy it sucks from its roots which seem to go down to the tectonic plates, or perhaps by radioactive decay of radon in the ground
162.
▲
by
exDM69
2y ago
I do not cut it. I dig out any shoots and as much root as I can as soon as they appear above ground. For the other patch, I did just what you say, cut, herbicide and then covered it.
163.
▲
by
exDM69
2y ago
Previous owner of my property planted this damn plant here in two separate patches. I'm on year four trying to get rid of it and it's still showing signs of vitality. If I let my guard down, it's gonna be back with a vengeanc
164.
▲
by
exDM69
2y ago
Pre-Skylake Intel never had proper Vulkan support (on Linux at least) so it's a non issue. I use a 2015 Skylake laptop for most of my graphics programming project and it's got full Vulkan 1.3 and wide set of features. The hardware
165.
▲
by
exDM69
2y ago
With WebGPU/wgpu you don't get mesh shaders, ray tracing or shader subgroup/wave/warp operations. Its feature set is comparable to Vulkan 1.0, and Vulkan has progressed a lot since. And WebGPU still requires all the Rend
166.
▲
by
exDM69
2y ago
> only supported on about 28% of reports. This information is misleading because it includes old reports from years ago, before this feature existed. It does NOT mean that 28% of devices out there have support. You will need Steam hardwa
167.
▲
by
exDM69
2y ago
It isn't perfect but it's so much better than it used to be. Mobile drivers are still a problem, and part of the problem is that they passed their conformance tests years ago, and the test suite has improved a lot since then. But
168.
▲
by
exDM69
2y ago
Vulkan has a lot of features made specifically so that implementing portability layers like DXVK and Zink would be possible and performant. This has been a key project in the past few years and lots of work went into it. For more info, look
169.
▲
by
exDM69
2y ago
How is it easier said than done? All three major GPU vendors (Intel, nvidia, AMD) have drivers have a very good support on all three major desktop platforms (Windows, Linux and Macos), and it goes back to quite old hardware (Intel Skylake 2
170.
▲
by
exDM69
2y ago
I get by just fine with "one variant" using all the Vulkan 1.3 features that are ubiquitously available on desktop (= almost all of them) platforms with up to date drivers. The fact that there's n+1 extensions does not mean y
171.
▲
by
exDM69
2y ago
If you're unfamiliar with Vulkan 1.3 but are interested in low level graphics API work, you should check it out. It is a game changer and a huge difference to Vulkan 1.0. Once past the initial hurdle it's a pleasure to work with,
172.
▲
by
exDM69
2y ago
Correct me if I'm wrong, but with recent GPUs you should just be able to memory map a file on "disk" to the GPU address space? Open, mmap and then import the host pointer to GPU API (Cuda or Vulkan). Paging should work as exp
173.
▲
by
exDM69
2y ago
> Out-of-the-box, Lua runs through an interpreter - not a compiler. The first thing the "interpreter" does is run the Lua code through `luac`, the Lua compiler and then feed the bytecode to the Lua VM. This may be transparent
174.
▲
by
exDM69
2y ago
> but the fact that I have to use a compiler disqualifies the term 'scripting' from being applicable here, imho .. I'm not sure if this is a useful distinction to make. Lua, perhaps the most used scripting language out the
175.
▲
by
exDM69
2y ago
Correct me if I'm wrong but can't you put a Rc<RefCell<OffsetAllocator>> in your std::alloc::Allocator implementation for interior mutability? This make a non-thread safe allocator, with the (desired) side effect of ma
176.
▲
by
exDM69
2y ago
A good idea but not O(1). If you have a large allocation you have to mark every "page" in metadata table which makes allocation O(size in bytes / page size). The overhead might still be practically acceptable, even if it is n
177.
▲
by
exDM69
2y ago
That works but... This kind of allocators are usually used for suballocating GPU buffers, so hiding a few bytes of metadata "in-band" can mess up your alignment requirements and not all kinds of GPU memory are even accessible by C
178.
▲
by
exDM69
2y ago
> Aw. Why not? Because the global allocator API is defined as free(pointer address) and this used free(buffer handle). It would require a reverse lookup structure from address to buffer handle, e.g. red-black tree. Maintaining it would n
179.
▲
by
exDM69
2y ago
I wrote almost the exact same thing after seeing Sebastian Aaltonen's original offset allocator repo which inspired me to write my own clone in Rust. It's possible to further improve the fragmentation characteristics if the maximu
180.
▲
by
exDM69
2y ago
Some 20 years younger, there is a 1990s DOS era game called Triplane Turmoil which is a similar dogfighting game with multiplayer and solo campaigns. It was a small time indie hit in Finland and Europe back in the day when games were distri
More ›