DConf 2014 Day 2 Talk 3: Designing an Aurora: A Glimpse at the Graphical Future of D by Adam Wilson

via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Thu Jul 10 03:43:44 PDT 2014


On Thursday, 10 July 2014 at 00:22:39 UTC, Tofu Ninja wrote:
> Actually is seems to be moving to fewer and fewer api calls 
> where possible(see AZDO) with lightweight contexts.

Yeah, AZDO appears to work within the OpenGL framework as is. 
However, I get a feeling that there will be more moves from 
Intel/AMD towards integrating the FPUs of the GPU with the CPU. 
Phi, the HPC CPU from Intel, was meant to support rendering 
(Larrabee).

> Yeah, it seems like that is where everything is going very fast,
> that is why I wish Aurora could try to follow that.

Depends on what Aurora is meant to target. The video says it is 
meant to be more of a playful environment that allows pac-man 
mockups and possibly GUIs in the long run, but not sure who would 
want that? There are so many much better IDE/REPL environments 
for that: Swift, Flash&Co, HTML5/WebGL/Dart/PNaCL, Python and 
lots of  advanced frameworks with engines for cross platform 
mobile development at all kinds of proficiency levels.

Seems to me what a language that D needs is two separate 
frameworks:

1. A barebones 3D high performance library with multiple backends 
that follow the hardware trends (kind of what you are 
suggesting). Suitable for creating games and HPC stuff.

2. A stable high level API with geometric libraries for dealing 
with established abstractions: font files, vector primitives, PDF 
generation and parsing with canvas abstraction for both 
screen/gui, print, file… Suitable for applications/web.

3. An engine layering of 2. on top of 1. for portable interactive 
graphics but a higher abstraction level than 1.

> This is actually really cool, I just don't see real time ray
> tracing being usable(games and the like) for at least another
> 5-10 years, though I will certainly be very happy to be wrong.

I think it is only meant for shiny details on the mobile 
platforms. I could see it being used for mirrors in a car game. 
Spherical knobs etc.

If it works out ok when hitting silicone then I can see Apple 
using it to strenghten iOS as a "portable console platform", 
which probably means having proprietary APIs that squeeze every 
drop out of the hardware.

> You may be right, I don't know, it just doesn't seem to be
> something they would do to me, just a gut feeling, no real basis
> to back it up.

Intel and AMD/ATI have a common "enemy" in the GPU/HPC field: 
Nvidia/CUDA.

> basically the same thing. Hardware specific api's(Mantel)
> complicate this a little bit but not by much, all the gpu
> hardware(excluding niche stuff like hardware ray tracers :P) out
> there has basicly the same interface.

Well, Direct-X's model has forced the same kind of pipeline, but 
if they get rid of DX… There are also other performant solutions 
out there: FPGA, crossbar-style multicore (many simple CPUS with 
local memory on a grid with memory busses between them).

> time(the differences should mostly just be syntax). If the DSL
> was a subset of D then that would simplify it even further as
> well as make the learning curve much smaller. Its a perfectly
> fine level of abstraction for any sort of graphics that also
> happens to be supported very well by modern GPU's. I don't see
> the problem.

Well, it all depends on the application area. For pixel based 
rendering, sure, shaders is the only way. I agree.

For more stable application oriented APIs, vectors all the way 
and wrap up JPEG/PNG files in "image block" abstractions.

> hardware support as a possible addition later on. But that comes
> back to the point that is is a little iffy what Aurora is
> actually trying to be. Personally I would be disappointed if it
> went down that route.

Well, OS level abstractions are hard to get right and people who 
has managed to do it charge quite a bit of money for it:

https://www.madewithmarmalade.com/shop

I guess it is possible if you only target desktop Windows/Mac, 
but other than that I think PNaCL/Pepper would be a more valuable 
cross platform target.


More information about the Digitalmars-d-announce mailing list