|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
jitHi devs,
I sometimes post something new about my ideas about computer graphics to AGG mainling list. Now I have completed my subproject and I'm really wondering what I or community can do with it. To introduce it. I was playing with generating assembly at runtime. I'm developing graphics library and this was just first experiment how to optimize blitting functions. Because I have some experiences with programming I developed library for C++ that can generate jit assember for x86 and x64 platforms. Home page (please check it) : http://code.google.com/p/asmjit/ The idea is to optimize blitting functions just in time for supported pixel format (source and dest), composite operation and in other cases for example for scaling / rotating. The basic idea is very similar to how C++ compiler generates code for C++ templates and AGG philosophy. The different is that no runtime is done by compiler, but everything is generated just in time. I'm planning to create new low level graphics library that implements only blitting functions for wrapping in existing API. If there are people interested about this and possible contributors, let me know. I'm part of my thesis and I will make sure that the library will be as universal as possible. The discussion is welcome. Cheers Petr Links about JIT in graphics: http://lists.cairographics.org/archives/cairo/2009-January/016232.html http://cgit.freedesktop.org/~sandmann/genrender/tree/ http://www.schleef.org/blog/2008/05/23/introducing-orc/ ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitOn Sun, Feb 1, 2009 at 9:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote:
> The idea is to optimize blitting functions just in time for supported > pixel format (source and dest), composite operation and in other cases > for example for scaling / rotating. The basic idea is very similar to > how C++ compiler generates code for C++ templates and AGG philosophy. > The different is that no runtime is done by compiler, but everything > is generated just in time. Interesting. Have you considered giving it a string interface, too, so you can just pass asm code to it directly? Also have you heard of TCC? http://bellard.org/tcc/ Seems like that can be used to compile C code on the fly from inside an app. --bb ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitThere is a similar project here:
https://gna.org/projects/softwire Softwire was the work of Nicolas Capens and his next project was to create a complete Direct3D renderer with shaders and all in software. Sebastien On 1 Feb 2009, at 06:30, Bill Baxter wrote: > On Sun, Feb 1, 2009 at 9:11 AM, Petr Kobalíček <kobalicek.petr@... > om> wrote: > >> The idea is to optimize blitting functions just in time for supported >> pixel format (source and dest), composite operation and in other >> cases >> for example for scaling / rotating. The basic idea is very similar to >> how C++ compiler generates code for C++ templates and AGG philosophy. >> The different is that no runtime is done by compiler, but everything >> is generated just in time. > > Interesting. Have you considered giving it a string interface, too, > so you can just pass asm code to it directly? > > Also have you heard of TCC? http://bellard.org/tcc/ Seems like that > can be used to compile C code on the fly from inside an app. > > --bb > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitLooks interesting. I did something like that few years ago, but it
only worked with up-to 32 bits per pixel and only generated x86 code. I am still using it for fast and correct conversions of pixel format like 565->888 or others. Does your bliter generate optimized code? And does it extend and reduce accuracy correctly? I mean: when extending from for example 5 bits to 8 bits, do you repeat the the source bits at the end? (10110 -> 10110101 ?) and when reducing number of bits, do you use round-to-even method? Thanks, Vlasta On Sun, Feb 1, 2009 at 1:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: > Hi devs, > > I sometimes post something new about my ideas about computer graphics > to AGG mainling list. Now I have completed my subproject and I'm > really wondering what I or community can do with it. > > To introduce it. > > I was playing with generating assembly at runtime. I'm developing > graphics library and this was just first experiment how to optimize > blitting functions. Because I have some experiences with programming I > developed library for C++ that can generate jit assember for x86 and > x64 platforms. > > Home page (please check it) : http://code.google.com/p/asmjit/ > > The idea is to optimize blitting functions just in time for supported > pixel format (source and dest), composite operation and in other cases > for example for scaling / rotating. The basic idea is very similar to > how C++ compiler generates code for C++ templates and AGG philosophy. > The different is that no runtime is done by compiler, but everything > is generated just in time. > > I'm planning to create new low level graphics library that implements > only blitting functions for wrapping in existing API. If there are > people interested about this and possible contributors, let me know. > I'm part of my thesis and I will make sure that the library will be as > universal as possible. > > The discussion is welcome. > > Cheers > Petr > > Links about JIT in graphics: > http://lists.cairographics.org/archives/cairo/2009-January/016232.html > http://cgit.freedesktop.org/~sandmann/genrender/tree/ > http://www.schleef.org/blog/2008/05/23/introducing-orc/ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi,
string interface is not planned. This project is only designed to simplify way to generate assembly stream that can be executed. I think that current implementation is pretty good, but of course, there are areas that can improve. I know tcc, but that project has different goals - Petr 2009/2/1 Bill Baxter <wbaxter@...>: > On Sun, Feb 1, 2009 at 9:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: > >> The idea is to optimize blitting functions just in time for supported >> pixel format (source and dest), composite operation and in other cases >> for example for scaling / rotating. The basic idea is very similar to >> how C++ compiler generates code for C++ templates and AGG philosophy. >> The different is that no runtime is done by compiler, but everything >> is generated just in time. > > Interesting. Have you considered giving it a string interface, too, > so you can just pass asm code to it directly? > > Also have you heard of TCC? http://bellard.org/tcc/ Seems like that > can be used to compile C code on the fly from inside an app. > > --bb > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi Sebastien,
there are more similar projects to generating JIT assembly, but many of them have these nagatives: - in pure C with macros (that's inacceptable for me) => no type checking - licence (GPL or LGPL is not good for this kind project) - only 32 bit x86 I'm not saying that AsmJit is best of these, but I think it's good solution without extra dependencies. - Petr 2009/2/1 Sebastien Metrot <meeloo@...>: > There is a similar project here: > > https://gna.org/projects/softwire > > Softwire was the work of Nicolas Capens and his next project was to > create a complete Direct3D renderer with shaders and all in software. > > Sebastien > > > On 1 Feb 2009, at 06:30, Bill Baxter wrote: > >> On Sun, Feb 1, 2009 at 9:11 AM, Petr Kobalíček <kobalicek.petr@... >> om> wrote: >> >>> The idea is to optimize blitting functions just in time for supported >>> pixel format (source and dest), composite operation and in other >>> cases >>> for example for scaling / rotating. The basic idea is very similar to >>> how C++ compiler generates code for C++ templates and AGG philosophy. >>> The different is that no runtime is done by compiler, but everything >>> is generated just in time. >> >> Interesting. Have you considered giving it a string interface, too, >> so you can just pass asm code to it directly? >> >> Also have you heard of TCC? http://bellard.org/tcc/ Seems like that >> can be used to compile C code on the fly from inside an app. >> >> --bb >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> SourcForge Community >> SourceForge wants to tell your story. >> http://p.sf.net/sfu/sf-spreadtheword >> _______________________________________________ >> Vector-agg-general mailing list >> Vector-agg-general@... >> https://lists.sourceforge.net/lists/listinfo/vector-agg-general > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi Vlastimil,
Currencly AsmJit is only library to generating asm code. Another project that will be probably named blitjit or renderjit (anybody have better name ?) will contain this low level blitting functions. Main reason I posted message here is that I wanted to inform AGG developers about new possible solution how to increase render speed without extra cost. So final library can be influented or contributed by AGG devs. If there is anybody that has completed MMX or SSE2 layer for AGG (I don't know existing solution), releasing will help me a lot to make my work quicker and maybe better:) - Petr 2009/2/1 Vlastimil Miléř <vlastimil.miler@...>: > Looks interesting. I did something like that few years ago, but it > only worked with up-to 32 bits per pixel and only generated x86 code. > I am still using it for fast and correct conversions of pixel format > like 565->888 or others. > > Does your bliter generate optimized code? And does it extend and > reduce accuracy correctly? I mean: when extending from for example 5 > bits to 8 bits, do you repeat the the source bits at the end? (10110 > -> 10110101 ?) and when reducing number of bits, do you use > round-to-even method? > > Thanks, > Vlasta > > On Sun, Feb 1, 2009 at 1:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: >> Hi devs, >> >> I sometimes post something new about my ideas about computer graphics >> to AGG mainling list. Now I have completed my subproject and I'm >> really wondering what I or community can do with it. >> >> To introduce it. >> >> I was playing with generating assembly at runtime. I'm developing >> graphics library and this was just first experiment how to optimize >> blitting functions. Because I have some experiences with programming I >> developed library for C++ that can generate jit assember for x86 and >> x64 platforms. >> >> Home page (please check it) : http://code.google.com/p/asmjit/ >> >> The idea is to optimize blitting functions just in time for supported >> pixel format (source and dest), composite operation and in other cases >> for example for scaling / rotating. The basic idea is very similar to >> how C++ compiler generates code for C++ templates and AGG philosophy. >> The different is that no runtime is done by compiler, but everything >> is generated just in time. >> >> I'm planning to create new low level graphics library that implements >> only blitting functions for wrapping in existing API. If there are >> people interested about this and possible contributors, let me know. >> I'm part of my thesis and I will make sure that the library will be as >> universal as possible. >> >> The discussion is welcome. >> >> Cheers >> Petr >> >> Links about JIT in graphics: >> http://lists.cairographics.org/archives/cairo/2009-January/016232.html >> http://cgit.freedesktop.org/~sandmann/genrender/tree/ >> http://www.schleef.org/blog/2008/05/23/introducing-orc/ >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> SourcForge Community >> SourceForge wants to tell your story. >> http://p.sf.net/sfu/sf-spreadtheword >> _______________________________________________ >> Vector-agg-general mailing list >> Vector-agg-general@... >> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi Petr,
I am not sure if I really understand why you are planning to produce a JITter for graphics code. My impression is that native templatized C++ code produces quite good machine code, more so if you heavily optimize it using multiple pass compilations (with a sampling phase of the real code before the final compilation). Is the effort of writing pieces of the render or rasterizer in low level assembly language and then jitting it really worth it ? I see the fun of it, though, I can't deny it ;-) Do you have any figures which would allow us to compare the standard C++ through compiler versus C++ and jitted ASM performance ? >From my point of view, this could really make sense if the jitter is higher level (some algorithmic description language) and can then produce the best possible assembly code by itself, be leveraging the various CPU specific architecture extensions (SSE, SSE2, etc.) Kind regards. Pierre Author of www.creativedocs.net / based on AGG 2.4 > -----Original Message----- > From: Petr Kobalíček [mailto:kobalicek.petr@...] > Sent: Sunday, February 01, 2009 1:12 AM > To: Anti-Grain Geometry > Subject: [AGG] jit > > Hi devs, > > I sometimes post something new about my ideas about computer graphics > to AGG mainling list. Now I have completed my subproject and I'm > really wondering what I or community can do with it. > > To introduce it. > > I was playing with generating assembly at runtime. I'm developing > graphics library and this was just first experiment how to optimize > blitting functions. Because I have some experiences with programming I > developed library for C++ that can generate jit assember for x86 and > x64 platforms. > > Home page (please check it) : http://code.google.com/p/asmjit/ > > The idea is to optimize blitting functions just in time for supported > pixel format (source and dest), composite operation and in other cases > for example for scaling / rotating. The basic idea is very similar to > how C++ compiler generates code for C++ templates and AGG philosophy. > The different is that no runtime is done by compiler, but everything > is generated just in time. > > I'm planning to create new low level graphics library that implements > only blitting functions for wrapping in existing API. If there are > people interested about this and possible contributors, let me know. > I'm part of my thesis and I will make sure that the library will be as > universal as possible. > > The discussion is welcome. > > Cheers > Petr > > Links about JIT in graphics: > http://lists.cairographics.org/archives/cairo/2009-January/016232.html > http://cgit.freedesktop.org/~sandmann/genrender/tree/ > http://www.schleef.org/blog/2008/05/23/introducing-orc/ > > ----------------------------------------------------------------------- > ------- > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
|
|
|
Re: jitThat's interesting. I have some questions:
Can someone provide for example percentage of performance improvements when using the JIT blitter/optimized routines? Is the performance increase in the JIT case really so significant to introduce another possible level of complexity into the code? Wouldn't be better to focus on using HW capabilities of graphics cards (for example teselation of the resulting poygons + use of FSAA for anitaliasing etc.)? Was there any public succesful try to create HW accelerated backend for AGG? I have not big experience in that field but I still plan to do a little research what could be done here. Does anoyne know any good resources on the web where I could start? Thanks for any answers. Regards, Richard From: "Bill Baxter" <wbaxter@...> Sent: Monday, February 02, 2009 10:03 PM > If you can jit-comple the exact pathways you need then, then > you can speed things up compared to the generic version. ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi,
I'm the author or nui (http://libnui.net) which is a GUI toolkit based on OpenGL (and now OpenGL ES / Direct3D). This project was started some 8 or 9 years ago and I've been working on it and with it amlist daily for that time. My experience is that it's some orders of magnitude harder to have HW support for those features that to add a JIT to your engine in order to optimize your bottlenecks (I've done some of that for pro audio dsp code). The reason is that no two chips work exactly the same and behaviour even tend to change over driver releases. To diferent cards, even sometimes from diferent vendors, will not give you the exact same scan convertion or rasterizing, and I'm not even touching shaders diferences... My experience also is that it's very easy to beat gcc and sometimes visual studio when working in assembly on some specific problems such as low level DSP, pixel packing, blending, etc. Gcc for instance is very bad at using its registers without spilling. Even on a PowerPC (that has 32 general purpose regs) it spills a lot. Don't trust the compilers optims blindly, unless you don't know assembly. Of course this only applies to some very specialized tasks and once you've done your homework on polishing the algorithms... Of course that is just my experience and I may have been lucky on the optim side and very unlucky on the 3D hardware side ;-) Sebastien On 2 Feb 2009, at 23:30, Cyphre wrote: > That's interesting. I have some questions: > Can someone provide for example percentage of performance > improvements when > using the JIT blitter/optimized routines? > Is the performance increase in the JIT case really so significant to > introduce another possible level of complexity into the code? > Wouldn't be better to focus on using HW capabilities of graphics > cards (for > example teselation of the resulting poygons + use of FSAA for > anitaliasing > etc.)? > Was there any public succesful try to create HW accelerated backend > for AGG? > I have not big experience in that field but I still plan to do a > little > research what could be done here. Does anoyne know any good > resources on the > web where I could start? > > Thanks for any answers. > > Regards, > Richard > > From: "Bill Baxter" <wbaxter@...> > Sent: Monday, February 02, 2009 10:03 PM > > >> If you can jit-comple the exact pathways you need then, then >> you can speed things up compared to the generic version. > > > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with > Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills > and code to > build responsive, highly engaging applications that combine the > power of local > resources and data with the reach of the web. Download the Adobe AIR > SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitThanks for the reply. I'll wait for the blitjit then. If you can do a
x86 and x64 optimized blitter using MMX and SSE, possibly also handling HDR floating point <-> BYTE conversion, it'll be great. Best regards, Vlasta 2009/2/1 Petr Kobalíček <kobalicek.petr@...>: > Hi Vlastimil, > > Currencly AsmJit is only library to generating asm code. Another > project that will be probably named blitjit or renderjit (anybody have > better name ?) will contain this low level blitting functions. > > Main reason I posted message here is that I wanted to inform AGG > developers about new possible solution how to increase render speed > without extra cost. So final library can be influented or contributed > by AGG devs. > > If there is anybody that has completed MMX or SSE2 layer for AGG (I > don't know existing solution), releasing will help me a lot to make my > work quicker and maybe better:) > > - Petr > > 2009/2/1 Vlastimil Miléř <vlastimil.miler@...>: >> Looks interesting. I did something like that few years ago, but it >> only worked with up-to 32 bits per pixel and only generated x86 code. >> I am still using it for fast and correct conversions of pixel format >> like 565->888 or others. >> >> Does your bliter generate optimized code? And does it extend and >> reduce accuracy correctly? I mean: when extending from for example 5 >> bits to 8 bits, do you repeat the the source bits at the end? (10110 >> -> 10110101 ?) and when reducing number of bits, do you use >> round-to-even method? >> >> Thanks, >> Vlasta >> >> On Sun, Feb 1, 2009 at 1:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: >>> Hi devs, >>> >>> I sometimes post something new about my ideas about computer graphics >>> to AGG mainling list. Now I have completed my subproject and I'm >>> really wondering what I or community can do with it. >>> >>> To introduce it. >>> >>> I was playing with generating assembly at runtime. I'm developing >>> graphics library and this was just first experiment how to optimize >>> blitting functions. Because I have some experiences with programming I >>> developed library for C++ that can generate jit assember for x86 and >>> x64 platforms. >>> >>> Home page (please check it) : http://code.google.com/p/asmjit/ >>> >>> The idea is to optimize blitting functions just in time for supported >>> pixel format (source and dest), composite operation and in other cases >>> for example for scaling / rotating. The basic idea is very similar to >>> how C++ compiler generates code for C++ templates and AGG philosophy. >>> The different is that no runtime is done by compiler, but everything >>> is generated just in time. >>> >>> I'm planning to create new low level graphics library that implements >>> only blitting functions for wrapping in existing API. If there are >>> people interested about this and possible contributors, let me know. >>> I'm part of my thesis and I will make sure that the library will be as >>> universal as possible. >>> >>> The discussion is welcome. >>> >>> Cheers >>> Petr >>> >>> Links about JIT in graphics: >>> http://lists.cairographics.org/archives/cairo/2009-January/016232.html >>> http://cgit.freedesktop.org/~sandmann/genrender/tree/ >>> http://www.schleef.org/blog/2008/05/23/introducing-orc/ >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by: >>> SourcForge Community >>> SourceForge wants to tell your story. >>> http://p.sf.net/sfu/sf-spreadtheword >>> _______________________________________________ >>> Vector-agg-general mailing list >>> Vector-agg-general@... >>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> SourcForge Community >> SourceForge wants to tell your story. >> http://p.sf.net/sfu/sf-spreadtheword >> _______________________________________________ >> Vector-agg-general mailing list >> Vector-agg-general@... >> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by: > SourcForge Community > SourceForge wants to tell your story. > http://p.sf.net/sfu/sf-spreadtheword > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi devs,
I will try to describe problem as best as I can. The idea behind blitjit (this is now official name) is to create very small library that can handle graphics operations on the span level. The library is not directly for antigrain, but it will be very simple to wrap it for antigrain and this is the reason I posted email to this mailing list. Antigrain is great piece of software with great licence, but without better acceleration it's quite slow. So blitjit can increase speed of your applications in way you can't imagine. For example is there complete MMX/SSE2 extension for antigrain ? No, but don't panic, other libraries also have problems with cpu specific features. So my idea is, instead of writing X hundreds boring and very similar functions, create one small library that can write all this for me just in time. Just in time can use not only cpu features like MMX, SSE, etc, but also processor cache line size, prefetch and non-thermal moving instructions. For example older AMD processors have cache line size 32 bytes, newer ones 128 bytes. Jit compiler can check for this and unroll loop to fit to these constants. But this is very complicated and this is not priority in first version. And finally, blitjit will contain all mmx/sse2 algorithms I developed (some of them was discussed here - remember MMX/SSE2 gradient fill ?) So, if there are people interested with this work and with assembler knowledge, they can be concerned in development and they can affect design of blitjit library. I'm only computer hobbyist who is very crazy to do these things for free and who have thesis 'multithreaded multiplatform graphics library'. note: blitjit library as all my work will be released under MIT licence. Cheers - Petr 2009/2/3 Vlastimil Miléř <vlastimil.miler@...>: > Thanks for the reply. I'll wait for the blitjit then. If you can do a > x86 and x64 optimized blitter using MMX and SSE, possibly also > handling HDR floating point <-> BYTE conversion, it'll be great. > > Best regards, > Vlasta > > 2009/2/1 Petr Kobalíček <kobalicek.petr@...>: >> Hi Vlastimil, >> >> Currencly AsmJit is only library to generating asm code. Another >> project that will be probably named blitjit or renderjit (anybody have >> better name ?) will contain this low level blitting functions. >> >> Main reason I posted message here is that I wanted to inform AGG >> developers about new possible solution how to increase render speed >> without extra cost. So final library can be influented or contributed >> by AGG devs. >> >> If there is anybody that has completed MMX or SSE2 layer for AGG (I >> don't know existing solution), releasing will help me a lot to make my >> work quicker and maybe better:) >> >> - Petr >> >> 2009/2/1 Vlastimil Miléř <vlastimil.miler@...>: >>> Looks interesting. I did something like that few years ago, but it >>> only worked with up-to 32 bits per pixel and only generated x86 code. >>> I am still using it for fast and correct conversions of pixel format >>> like 565->888 or others. >>> >>> Does your bliter generate optimized code? And does it extend and >>> reduce accuracy correctly? I mean: when extending from for example 5 >>> bits to 8 bits, do you repeat the the source bits at the end? (10110 >>> -> 10110101 ?) and when reducing number of bits, do you use >>> round-to-even method? >>> >>> Thanks, >>> Vlasta >>> >>> On Sun, Feb 1, 2009 at 1:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: >>>> Hi devs, >>>> >>>> I sometimes post something new about my ideas about computer graphics >>>> to AGG mainling list. Now I have completed my subproject and I'm >>>> really wondering what I or community can do with it. >>>> >>>> To introduce it. >>>> >>>> I was playing with generating assembly at runtime. I'm developing >>>> graphics library and this was just first experiment how to optimize >>>> blitting functions. Because I have some experiences with programming I >>>> developed library for C++ that can generate jit assember for x86 and >>>> x64 platforms. >>>> >>>> Home page (please check it) : http://code.google.com/p/asmjit/ >>>> >>>> The idea is to optimize blitting functions just in time for supported >>>> pixel format (source and dest), composite operation and in other cases >>>> for example for scaling / rotating. The basic idea is very similar to >>>> how C++ compiler generates code for C++ templates and AGG philosophy. >>>> The different is that no runtime is done by compiler, but everything >>>> is generated just in time. >>>> >>>> I'm planning to create new low level graphics library that implements >>>> only blitting functions for wrapping in existing API. If there are >>>> people interested about this and possible contributors, let me know. >>>> I'm part of my thesis and I will make sure that the library will be as >>>> universal as possible. >>>> >>>> The discussion is welcome. >>>> >>>> Cheers >>>> Petr >>>> >>>> Links about JIT in graphics: >>>> http://lists.cairographics.org/archives/cairo/2009-January/016232.html >>>> http://cgit.freedesktop.org/~sandmann/genrender/tree/ >>>> http://www.schleef.org/blog/2008/05/23/introducing-orc/ >>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by: >>>> SourcForge Community >>>> SourceForge wants to tell your story. >>>> http://p.sf.net/sfu/sf-spreadtheword >>>> _______________________________________________ >>>> Vector-agg-general mailing list >>>> Vector-agg-general@... >>>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by: >>> SourcForge Community >>> SourceForge wants to tell your story. >>> http://p.sf.net/sfu/sf-spreadtheword >>> _______________________________________________ >>> Vector-agg-general mailing list >>> Vector-agg-general@... >>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by: >> SourcForge Community >> SourceForge wants to tell your story. >> http://p.sf.net/sfu/sf-spreadtheword >> _______________________________________________ >> Vector-agg-general mailing list >> Vector-agg-general@... >> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >> > > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills and code to > build responsive, highly engaging applications that combine the power of local > resources and data with the reach of the web. Download the Adobe AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitNow, I am definitely interested. While I have not used asm in years
and did not really take the time to look into SSE, I can participate in the design and I can test it in a real application. I have (among others) a freeware image editor based on agg ( http://www.rw-designer.com/image-editor ) and this kind of low level optimization was something I wanted, but did not find the time to do it. Please, feel free to contact me also via google chat/talk. Br, Vlasta 2009/2/3 Petr Kobalíček <kobalicek.petr@...>: > Hi devs, > > I will try to describe problem as best as I can. > > The idea behind blitjit (this is now official name) is to create very > small library that can handle graphics operations on the span level. > The library is not directly for antigrain, but it will be very simple > to wrap it for antigrain and this is the reason I posted email to this > mailing list. > > Antigrain is great piece of software with great licence, but without > better acceleration it's quite slow. So blitjit can increase speed of > your applications in way you can't imagine. For example is there > complete MMX/SSE2 extension for antigrain ? No, but don't panic, other > libraries also have problems with cpu specific features. > > So my idea is, instead of writing X hundreds boring and very similar > functions, create one small library that can write all this for me > just in time. > > Just in time can use not only cpu features like MMX, SSE, etc, but > also processor cache line size, prefetch and non-thermal moving > instructions. > > For example older AMD processors have cache line size 32 bytes, newer > ones 128 bytes. Jit compiler can check for this and unroll loop to fit > to these constants. But this is very complicated and this is not > priority in first version. > > And finally, > > blitjit will contain all mmx/sse2 algorithms I developed (some of them > was discussed here - remember MMX/SSE2 gradient fill ?) > > So, if there are people interested with this work and with assembler > knowledge, they can be concerned in development and they can affect > design of blitjit library. > > I'm only computer hobbyist who is very crazy to do these things for > free and who have thesis 'multithreaded multiplatform graphics > library'. > > note: blitjit library as all my work will be released under MIT licence. > > Cheers > - Petr > > 2009/2/3 Vlastimil Miléř <vlastimil.miler@...>: >> Thanks for the reply. I'll wait for the blitjit then. If you can do a >> x86 and x64 optimized blitter using MMX and SSE, possibly also >> handling HDR floating point <-> BYTE conversion, it'll be great. >> >> Best regards, >> Vlasta >> >> 2009/2/1 Petr Kobalíček <kobalicek.petr@...>: >>> Hi Vlastimil, >>> >>> Currencly AsmJit is only library to generating asm code. Another >>> project that will be probably named blitjit or renderjit (anybody have >>> better name ?) will contain this low level blitting functions. >>> >>> Main reason I posted message here is that I wanted to inform AGG >>> developers about new possible solution how to increase render speed >>> without extra cost. So final library can be influented or contributed >>> by AGG devs. >>> >>> If there is anybody that has completed MMX or SSE2 layer for AGG (I >>> don't know existing solution), releasing will help me a lot to make my >>> work quicker and maybe better:) >>> >>> - Petr >>> >>> 2009/2/1 Vlastimil Miléř <vlastimil.miler@...>: >>>> Looks interesting. I did something like that few years ago, but it >>>> only worked with up-to 32 bits per pixel and only generated x86 code. >>>> I am still using it for fast and correct conversions of pixel format >>>> like 565->888 or others. >>>> >>>> Does your bliter generate optimized code? And does it extend and >>>> reduce accuracy correctly? I mean: when extending from for example 5 >>>> bits to 8 bits, do you repeat the the source bits at the end? (10110 >>>> -> 10110101 ?) and when reducing number of bits, do you use >>>> round-to-even method? >>>> >>>> Thanks, >>>> Vlasta >>>> >>>> On Sun, Feb 1, 2009 at 1:11 AM, Petr Kobalíček <kobalicek.petr@...> wrote: >>>>> Hi devs, >>>>> >>>>> I sometimes post something new about my ideas about computer graphics >>>>> to AGG mainling list. Now I have completed my subproject and I'm >>>>> really wondering what I or community can do with it. >>>>> >>>>> To introduce it. >>>>> >>>>> I was playing with generating assembly at runtime. I'm developing >>>>> graphics library and this was just first experiment how to optimize >>>>> blitting functions. Because I have some experiences with programming I >>>>> developed library for C++ that can generate jit assember for x86 and >>>>> x64 platforms. >>>>> >>>>> Home page (please check it) : http://code.google.com/p/asmjit/ >>>>> >>>>> The idea is to optimize blitting functions just in time for supported >>>>> pixel format (source and dest), composite operation and in other cases >>>>> for example for scaling / rotating. The basic idea is very similar to >>>>> how C++ compiler generates code for C++ templates and AGG philosophy. >>>>> The different is that no runtime is done by compiler, but everything >>>>> is generated just in time. >>>>> >>>>> I'm planning to create new low level graphics library that implements >>>>> only blitting functions for wrapping in existing API. If there are >>>>> people interested about this and possible contributors, let me know. >>>>> I'm part of my thesis and I will make sure that the library will be as >>>>> universal as possible. >>>>> >>>>> The discussion is welcome. >>>>> >>>>> Cheers >>>>> Petr >>>>> >>>>> Links about JIT in graphics: >>>>> http://lists.cairographics.org/archives/cairo/2009-January/016232.html >>>>> http://cgit.freedesktop.org/~sandmann/genrender/tree/ >>>>> http://www.schleef.org/blog/2008/05/23/introducing-orc/ >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> This SF.net email is sponsored by: >>>>> SourcForge Community >>>>> SourceForge wants to tell your story. >>>>> http://p.sf.net/sfu/sf-spreadtheword >>>>> _______________________________________________ >>>>> Vector-agg-general mailing list >>>>> Vector-agg-general@... >>>>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> This SF.net email is sponsored by: >>>> SourcForge Community >>>> SourceForge wants to tell your story. >>>> http://p.sf.net/sfu/sf-spreadtheword >>>> _______________________________________________ >>>> Vector-agg-general mailing list >>>> Vector-agg-general@... >>>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by: >>> SourcForge Community >>> SourceForge wants to tell your story. >>> http://p.sf.net/sfu/sf-spreadtheword >>> _______________________________________________ >>> Vector-agg-general mailing list >>> Vector-agg-general@... >>> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >>> >> >> ------------------------------------------------------------------------------ >> Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) >> software. With Adobe AIR, Ajax developers can use existing skills and code to >> build responsive, highly engaging applications that combine the power of local >> resources and data with the reach of the web. Download the Adobe AIR SDK and >> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com >> _______________________________________________ >> Vector-agg-general mailing list >> Vector-agg-general@... >> https://lists.sourceforge.net/lists/listinfo/vector-agg-general >> > > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills and code to > build responsive, highly engaging applications that combine the power of local > resources and data with the reach of the web. Download the Adobe AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitOn Tue, Feb 3, 2009 at 6:09 PM, Vlastimil Miléř
<vlastimil.miler@...> wrote: > Now, I am definitely interested. While I have not used asm in years > and did not really take the time to look into SSE, I can participate > in the design and I can test it in a real application. I have (among > others) a freeware image editor based on agg ( > http://www.rw-designer.com/image-editor ) and this kind of low level > optimization was something I wanted, but did not find the time to do > it. You're that guy?! I love your Real World cursor editor! --bb ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitThat's nice to hear, thanks :-). You have some pretty amazing stuff on
your web page. (http://www.billbaxter.com/ is yours, right?) Br, Vlasta 2009/2/3 Bill Baxter <wbaxter@...>: > On Tue, Feb 3, 2009 at 6:09 PM, Vlastimil Miléř > > You're that guy?! I love your Real World cursor editor! > > --bb > ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitOn Tue, Feb 3, 2009 at 6:45 PM, Vlastimil Miléř
<vlastimil.miler@...> wrote: > That's nice to hear, thanks :-). You have some pretty amazing stuff on > your web page. (http://www.billbaxter.com/ is yours, right?) That's me. Thanks! Cool to know you're using AGG in those apps [...trying to be slightly on topic here :-)]. --bb ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitHi Petr,
I'd also be interested in helping test this. I have some asm experience (I helped develop a set of drivers that emulated parallel-port dongle hardware in software) and like Valstimil, I intend to look into SSE optimizations but haven't gotten to it yet. (I'm using AGG as part of the graphics engine for a commercial product...) Lorne Laliberte Senior Software Developer, Indigo Rose Software ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitLorrne,
> (I'm using AGG as part of the graphics engine for a commercial product...) Pardon my ignorance, but doesn't AGG's GPL license prevents its use in commercial applications? I read that for that, one has to go back to a previous version under a BSD license. Thanks, -- - Nick - ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
|
|
Re: jitYes, my code is based on version 2.4 and not version 2.5.
Version 2.4 is still available under the BSD license. There are no differences between 2.4 and 2.5 at this time, and from discussions in this mailing list it appears that any further third-party development on AGG will be based on version 2.4. - Lorne On Tue, Feb 3, 2009 at 2:09 PM, NickMtl <valerianmusic@...> wrote: > Lorrne, > >> (I'm using AGG as part of the graphics engine for a commercial product...) > > Pardon my ignorance, but doesn't AGG's GPL license prevents its use in > commercial applications? I read that for that, one has to go back to a > previous version under a BSD license. > > Thanks, > > -- > - Nick - > > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills and code to > build responsive, highly engaging applications that combine the power of local > resources and data with the reach of the web. Download the Adobe AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > Vector-agg-general mailing list > Vector-agg-general@... > https://lists.sourceforge.net/lists/listinfo/vector-agg-general > ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ Vector-agg-general mailing list Vector-agg-general@... https://lists.sourceforge.net/lists/listinfo/vector-agg-general |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |