One other aspect that deserves underlining with the forward compatible contexts ( the 'new' shader paradigm if you like ) :
The vertex and fragment shaders are presented to the OpenGL state machine at runtime to be validated and then combined to run an instance of the pipeline. In the client code these shaders are represented as character strings to be loaded into an OpenGL shader object. Hence the construction of said string may be programmatic ie. doesn't have to be constant at compile time wrt client code. This implies that deciding the nature of all GLSL constructs may be deferred until runtime ie. prior to the shader being compiled by the state machine.
I mention this because :
Quote:
.... possibly some prescription of base representation eg. float, double etc.
is subject to exactly that.
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
Frankly speaking: muhaha! No, not at all. The last time I touched OpenGL was 3.5 years ago for the 3D pulsar simulation, let alone GLSL. There're so many other things on my plate that I just don't find the time for the (visually) beautiful stuff.
Thus I'll continue to ride along as your pillion to see what lies ahead ;-)
@Oliver : LOL ! Yes it is indeed an area where knowledge is very perishable. In fact you could consider that the theme of this whole exercise ie. the rapid morphing of the OpenGL machine in the last five years, say. My son informed me two days ago that the Khronos Group has only recently announced a whole new line of thinking for OpenGL 5+, the specifications of which may be completed in about five years. I'm just going to pretend he never told me that ..... :-):-):-)
@Stranger : Thanks ! I'm currently working on a gnarly bit : regularising an interface for transferring uniform variable values. Uniforms are a type of operand which persists across the whole pipeline, generally used for transform matrices that apply to very many vertices eg. a frame's worth of rendering from a given spatial viewpoint.
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
@Oliver : LOL ! Yes it is indeed an area where knowledge is very perishable. In fact you could consider that the theme of this whole exercise ie. the rapid morphing of the OpenGL machine in the last five years, say. My son informed me two days ago that the Khronos Group has only recently announced a whole new line of thinking for OpenGL 5+, the specifications of which may be completed in about five years. I'm just going to pretend he never told me that ..... :-):-):-)
@Stranger : Thanks ! I'm currently working on a gnarly bit : regularising an interface for transferring uniform variable values. Uniforms are a type of operand which persists across the whole pipeline, generally used for transform matrices that apply to very many vertices eg. a frame's worth of rendering from a given spatial viewpoint.
Cheers, Mike.
@Mike - I guess I'm failing to see the difficulty here. I'm no programmer but it seems to me the solution is very simple. Simply add some lines of code in the program to input a daily regimen of Metamucil and the output is now regular and uniform, and the transformation now takes much less energy.
( YOU WILL HAVE TO MANUALLY SET THE EXECUTABLE BIT ON FILE PERMISSIONS after download )
Let me know what happens, preferably a rotating triangle with pretty colors ....
Cheers, Mike.
( edit ) There is a file created during program execution, in the same directory as the executable, called 'eahss_stderr.txt' which contains error messages and other informative output of interest.
The other one called 'stderrgfx.txt' ( same directory ) is emitted by the BOINC library routines embedded in the executable.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
Now here's a thing. Compared with the last time that I fiddled with the cross-compile toolchain there's has been a naming change, and else of material interest. For Fedora [ 17+ and since ~ 03/12 ] at least, what I want is the mingw-w64 product. This will do either 32 or 64 bit Windows builds, noting that :
Quote:
... the name of the gcc command for the Win32 target has been changed from 'i686-pc-mingw32' to 'i686-w64-mingw32-gcc' and that all files which used to be in /usr/i686-pc-mingw32/ have now been moved to /usr/i686-w64-mingw32/ ...
With my Fedora 21 I go via yum to pull from the official repo, the package I obtain yields gcc v4.8.1 and will do i686 and/or x86_64. It has CRT 3.1.0 and C11/C++11 threading. Here are outlined some various/other choices of toolchain.
Cheers, Mike.
( edit ) For those not familiar, gcc stands for 'gnu compiler collection' and is more or less the defacto standard for *nix machines. It includes much more than merely a compiler, hence the 'toolchain' moniker. It is also much more than C/C++ eg. Ada, Fortran, Objective-C, Objective-C++. Cross compilation means producing executable code to be run on a given machine ( usually called the 'target' ) quite different from the one you are building upon. In my case I have a ( Fedora ) Linux machine making code for Windows.
[ignore what follows]
It is only mildly confusing :-) :-) ...... but you can have say Win-Build operating on a Windows machine via Cygwin for instance ( a sort of a GNU under Windows virtualisation ) that yields Windows executables. Or Linux executables for that matter. Why, you ask ? Well you may want something other than Windows executables built using a pure Windows toolchain .... long story there ... :-)
.... it is even possible to produce a product ( eg. a compiler ) for a different machine, which operates to cross compile. I don't know why I would but you could use a Linux machine to build a compiler than runs on a Windows machine, that compiler in turn builds executables for a third machine type !!! :-)
[/ignore what follows]
( edit ) To signal that I want a win32 build I could use the gcc compiler switch m32 say. If you are curious, psychotic, or merely an insomniac, then here is the gcc option summary.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
One other aspect that
)
One other aspect that deserves underlining with the forward compatible contexts ( the 'new' shader paradigm if you like ) :
The vertex and fragment shaders are presented to the OpenGL state machine at runtime to be validated and then combined to run an instance of the pipeline. In the client code these shaders are represented as character strings to be loaded into an OpenGL shader object. Hence the construction of said string may be programmatic ie. doesn't have to be constant at compile time wrt client code. This implies that deciding the nature of all GLSL constructs may be deferred until runtime ie. prior to the shader being compiled by the state machine.
I mention this because :
is subject to exactly that.
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
RE: I'm sure you're
)
Frankly speaking: muhaha! No, not at all. The last time I touched OpenGL was 3.5 years ago for the 3D pulsar simulation, let alone GLSL. There're so many other things on my plate that I just don't find the time for the (visually) beautiful stuff.
Thus I'll continue to ride along as your pillion to see what lies ahead ;-)
Oliver
Einstein@Home Project
I'm going to like this work
)
I'm going to like this work log. Go ahead, Mike! I'm still ready to test your screensaver as soon as possible :)
@Oliver : LOL ! Yes it is
)
@Oliver : LOL ! Yes it is indeed an area where knowledge is very perishable. In fact you could consider that the theme of this whole exercise ie. the rapid morphing of the OpenGL machine in the last five years, say. My son informed me two days ago that the Khronos Group has only recently announced a whole new line of thinking for OpenGL 5+, the specifications of which may be completed in about five years. I'm just going to pretend he never told me that ..... :-):-):-)
@Stranger : Thanks ! I'm currently working on a gnarly bit : regularising an interface for transferring uniform variable values. Uniforms are a type of operand which persists across the whole pipeline, generally used for transform matrices that apply to very many vertices eg. a frame's worth of rendering from a given spatial viewpoint.
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
RE: @Oliver : LOL ! Yes it
)
@Mike - I guess I'm failing to see the difficulty here. I'm no programmer but it seems to me the solution is very simple. Simply add some lines of code in the program to input a daily regimen of Metamucil and the output is now regular and uniform, and the transformation now takes much less energy.
Simple, huh?
Phil
I thought I was wrong once, but I was mistaken.
LOL. We'll call it the
)
LOL. We'll call it the purgative programming paradigm, 3P for short ... or even better : Phil's 3P's. You're not getting my name on that ! :-)
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
Alright eager testers : this
)
Alright eager testers : this should work on a linux 32bit machine :
The Rotating Guy
( YOU WILL HAVE TO MANUALLY SET THE EXECUTABLE BIT ON FILE PERMISSIONS after download )
Let me know what happens, preferably a rotating triangle with pretty colors ....
Cheers, Mike.
( edit ) There is a file created during program execution, in the same directory as the executable, called 'eahss_stderr.txt' which contains error messages and other informative output of interest.
The other one called 'stderrgfx.txt' ( same directory ) is emitted by the BOINC library routines embedded in the executable.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
RE: Alright eager testers :
)
I'm almost on Windows XP and 7, but can test on even Win 98.
Fair point. Next task : get
)
Fair point. Next task : get the Windows builds on the go.
Cheers, Mike.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal
Now here's a thing. Compared
)
Now here's a thing. Compared with the last time that I fiddled with the cross-compile toolchain there's has been a naming change, and else of material interest. For Fedora [ 17+ and since ~ 03/12 ] at least, what I want is the mingw-w64 product. This will do either 32 or 64 bit Windows builds, noting that :
With my Fedora 21 I go via yum to pull from the official repo, the package I obtain yields gcc v4.8.1 and will do i686 and/or x86_64. It has CRT 3.1.0 and C11/C++11 threading. Here are outlined some various/other choices of toolchain.
Cheers, Mike.
( edit ) For those not familiar, gcc stands for 'gnu compiler collection' and is more or less the defacto standard for *nix machines. It includes much more than merely a compiler, hence the 'toolchain' moniker. It is also much more than C/C++ eg. Ada, Fortran, Objective-C, Objective-C++. Cross compilation means producing executable code to be run on a given machine ( usually called the 'target' ) quite different from the one you are building upon. In my case I have a ( Fedora ) Linux machine making code for Windows.
[ignore what follows]
It is only mildly confusing :-) :-) ...... but you can have say Win-Build operating on a Windows machine via Cygwin for instance ( a sort of a GNU under Windows virtualisation ) that yields Windows executables. Or Linux executables for that matter. Why, you ask ? Well you may want something other than Windows executables built using a pure Windows toolchain .... long story there ... :-)
.... it is even possible to produce a product ( eg. a compiler ) for a different machine, which operates to cross compile. I don't know why I would but you could use a Linux machine to build a compiler than runs on a Windows machine, that compiler in turn builds executables for a third machine type !!! :-)
[/ignore what follows]
( edit ) To signal that I want a win32 build I could use the gcc compiler switch m32 say. If you are curious, psychotic, or merely an insomniac, then here is the gcc option summary.
I have made this letter longer than usual because I lack the time to make it shorter ...
... and my other CPU is a Ryzen 5950X :-) Blaise Pascal