News for hackers. Stuff that matters.

joe91

Re:PlayStation Architecture on Wednesday June 03, 2026 @06:25PM (#48390977)
Another weird corner case is that COP2 (GTE) instructions actually start executing one instruction early with respect to where the program counter is. As a result when an exception happens the kernel interrupt handler checks to see if the next instruction is COP2 and has to add 4 to the program counter in order to not execute it twice.

Also COP2 instructions were not allowed in branch delay slots (presumably for similar reasons), however some games (from memory Tekken3) do actually do this. I always wondered if it was a sneaky anti-emulation thing :) (because many emulators had issues with this, or needed special handling).

Re:The IDEs we had 30 years ago ... and we lost on Saturday October 18, 2025 @12:55PM (#45628708)
No love for MultiEdit? :(
Re:Canyon.mid on Sunday June 15, 2025 @02:51PM (#44284223)
Re:VSCode's SSH agent is bananas on Saturday February 08, 2025 @04:31PM (#42986376)
I mean, yeah, technically true - although you would connect in untrusted mode if you didn't trust the machine where you were editing code. At that point it should only be slightly more dangerous than opening a web page from the remote server.

So yeah, if you don't trust the remote machine then I agree - you probably shouldn't use it. But I don't really think that's the use-case they had in mind.

Re:VSCode's SSH agent is bananas on Saturday February 08, 2025 @03:59PM (#42986153)
How does it differ from just logging into that machine and running code?
Re:VSCode's SSH agent is bananas on Saturday February 08, 2025 @03:56PM (#42986134)
Most of us have learned <esc>:q by now. And then apt-get remove vim :)
Re:C++26: Pack Indexing on Friday January 24, 2025 @07:20PM (#42818233)
btw: you can actually write, for example, the first function as just:

    auto first(auto... params) { return params...[0]; }
Unless I'm missing something - but the post is showing off the fact that you can index into the list of types of the parameters, as well as the parameters themselves (in which case you need full template syntax).
Re:C++26: Pack Indexing on Friday January 24, 2025 @07:00PM (#42818135)
array[index] is insane syntax? That's all that's being talked about here (allowing array-like indexing of parameter packs which are variadic template parameters).
Sudeki was better. Long live SOL :)
My Russian girlfriend did not even know that кринж (cringe) was an English word. Not only that, it has been imported as an adjective just like its use in English internet slang (e.g. that's cringe). Then a verb was formed from that: кринжевать.
Windows 10 had the text "Type here to search" in its search box so it was even worse by 3 words
Both KDE and Gnome seem to have the text "Search" in their search boxes too (Gnome is an even worse choice, it has "Type to search" in its search box)
Re:Ask HN: Whatever happened to dedicated sound cards? on Thursday September 01, 2022 @10:14PM (#32685834)
This is nonsense. The main reason behind the demise of dedicated sound cards: motherboard sound chipsets got "good enough". The value add wasn't adding enough value any more because you can get decent sound quality just by using the default sound output provided by your motherboard.

3D sound and other processing got baked into middleware for games because it became trivial to do all of the processing in software - and the processing became more advanced than anything that the sound card vendors were offering (and they didn't move quickly enough anyway).

Pro audio vastly progressed past anything that is possible to provide in fixed silicon. For input, dedicated USB (and ethernet) audio interfaces progressed to the point where it would be ridiculous to provide such functionality on a general "sound card".

It's just evolution - there just isn't a compelling enough niche for a dedicated sound card any more.

You do need a very different design to efficiently target D3D12 and Vulkan. You need to think in terms of pipelines, root signatures/descriptor layouts, tables of descriptors and resource transitions. But its quite easy to also target D3D11 in this way:

Pipeline state -> struct of the 3 or 4 state objects + a few values (this actually makes redundancy checking easier and can actually be a win :)

Root signature -> fixed pre allocation of binding slots (this can even be done statically with templates if your root signature is known statically)

Tables of descriptors -> arrays of handles

(edit: you obviously cannot do the kinds of bindless things with D3D11 that you can do with D3D12 and Vulkan. But its common to have both bindless and non-bindless code paths with D3D12 and Vulkan anyway)

Resource transitions -> nothing

Re:Unified Shader Programming in C++ on Sunday October 03, 2021 @07:00PM (#28741283)
While not being based on C DirectX actually has a C API, even for D3D12. For example to call device->CreateRootSignature(...) from C you call ID3D12Device_CreateRootSignature(device, ...).
Assuming the M1 GPU works like most modern GPUs then bounds checking is already built into every memory operation.

Memory operations in modern GPUs basically evolved from fetching textures (which intrinsically have bounds checking built in, they have a width and height). All modern desktop GPUs (and probably mobile GPUs these days) use "descriptors" for textures and buffers which specify both address and size. Out of range fetches from a buffer return 0 and out of range writes are no operations.

There have been some GPUs in the past that could literally write to any address in main memory (famously the GPU in the XBox360 could do this), but its not true of any modern GPU as far as I know.

On a different note, 900 GFlops from a GPU is not really that impressive. Desktop GPUs reached this kind of performance nearly 10 years ago, but I guess its not bad for a first generation new design.

I find this kind of comment strange in a community of self professed hackers :)

8k 120fps HDR is just the specification of the hardware. The hardware supports an 8k framebuffer and can output it to the display at 120fps. Whether or not you will choose to do that depends on what you are trying to achieve with the available GPU cycles. It's exactly the same on current consoles (and PC really). Maybe Forza 19 will choose to render simpler graphics at 8k 120fps, but Witcher 5 will decide to run at 4k but use raytracing and dynamic global illumination (these games may or may not exist :).

There are games that run at 4k/60 with HDR on XBox One X (I worked on one), and there are games that choose not to in order to do something a bit more advanced.

No one is saying that all games will run at 8k/120, just as no one is saying that all games will run at 8k/60 on the RTX 2080 Ti even though its possible to do.