>Nowadays, I write code for GPUs, except it's in a C-based language. It's a perfectly logical evolution. I could write in PTX assembler directly but since the underlying hardware is now so much more complicated it would be self defeating to attempt it.
You didn't explain how that outdoes the Copper.
As I have said umpteen times, this is a subjective debate. You didn't explain how the Copper outdoes a box of cornflakes. The copper is very poor in comparison to a box of cornflakes at 6am in the morning when I'm hungry and disoriented.
With this necessary understanding of the subjective nature of the debate in mind, I'll give you a suitably subjective answer:
Well, lets look at the Copper. Its a limited state machine that has three instructions: move, wait and skip. It executes in sync with the video hardware. Despite this limited instruction set, the ability to poke hardware registers of other components (eg the blitter) makes it quite versatile (ie you can do more than pretty gradients), agreed?
However, it is not suitable for my applications. I do not require beam sync operations, but I require a "copperlist" that can perform an operation en-masse on a 2 (or 3) dimensional grid of data. I also need a Turing Complete machine to execute it since the operations I want to perform in my "copperlist", per element, may have conditional jumps.
The operations will consist of more than 16-bit word moves, waiting and skipping. I need 32-bit IEEE754 compliant add, subtract, multiply, divide and square root and comparisons. I also need the usual gamut of arithmetic, logic, and bitwise operators for integer types. My dataset(s) will also not be representable using 24-bit addressing as it is several hundred megabytes in size, but that's by the by.
In short, I need a fully programmable CPU with FPU. However, I need a CPU that can can execute my "copperlist" many times concurrently, each instance operating on a separate element in my data grid.
So, the GPU is significantly better than the copper for my application. Your mileage may vary.
>I never said "better", since "better" is subjective.
Better is not subjective. It's better to have 7.16Mhz vs. 3.57Mhz timing.
"Better"
is most assuredly subjective. What constitutes "better" is context dependent. A kettle
is far better than 7.16MHz timing can ever be, when you want to make a cup of tea.
Not confused; but you implied a better amiga they way you posted your replies.
It
is better
if you want to have an Amiga you can work with on the train home, or if you want an amiga that can process data rapidly (eg Image Processing, Ray Tracing etc), or you want an Amiga that can handle huge RTG resolutions in 32-bit colour without any slowdown, or you want an Amiga that you can reconfigure the hardware without physically opening it, or you want an Amiga with more than 2MB of Chip RAM.
These are all ways in which UAE
is better than a real Amiga, but they are all subjective. Not everybody wants to do all of the above things with their Amiga. If you want to use your Amiga to control parallel port hardware and your PC doesn't have one, then again, subjectively, it
is worse than a real Amiga.
No, it does NOT provide the same end functionality since that's part of being a real amiga.
In your opinion. As far as the software running on the emulation is concerned, it is a real Amiga.