Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Ilia Mirkin
FWIW, nv50/nvc0 also don't have pow instructions (looks like the last nvidia card with a pow instruction was the GeForce FX series, first released in 2003... even nv40 doesn't have it). The nouveau codegen will happily lower pow's though. However would be nice to avoid the double-work. On Fri, Jul

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Marek Olšák
There already is an option: gl_shader_compiler_options::EmitNoPow, but st/mesa never sets it to GL_TRUE. Marek On Sat, Jul 19, 2014 at 12:38 AM, Matt Turner wrote: > On Fri, Jul 18, 2014 at 3:25 PM, Marek Olšák wrote: >> BTW, I have just noticed r600g also lowers POW and there is no mention >>

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Matt Turner
On Fri, Jul 18, 2014 at 3:25 PM, Marek Olšák wrote: > BTW, I have just noticed r600g also lowers POW and there is no mention > of POW in the SI ISA guide either, so I don't think radeons would > benefit from an optimization pass that adds POW instructions. Sure. We could of course add an option (

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Marek Olšák
BTW, I have just noticed r600g also lowers POW and there is no mention of POW in the SI ISA guide either, so I don't think radeons would benefit from an optimization pass that adds POW instructions. Marek On Sat, Jul 19, 2014 at 12:15 AM, Marek Olšák wrote: > All Gallium drivers must support POW

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Marek Olšák
All Gallium drivers must support POW, but some drivers like r300-r500 fragment shaders lower it to LG2+MUL+EX2. Marek On Sun, Jul 13, 2014 at 7:50 PM, Thomas Helland wrote: > Hi all, > > I've been looking at some shaders from Portal recently. > A lot of them seem to hand-roll a pow-function with

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-18 Thread Matt Turner
On Wed, Jul 16, 2014 at 4:14 PM, Thomas Helland wrote: > 2014-07-13 20:13 GMT+02:00 Matt Turner : >> >> On Sun, Jul 13, 2014 at 10:50 AM, Thomas Helland >> wrote: >> > I've considered writing an algebraic optimization to convert >> > this into an ir_binop_pow. If my understanding is correct the b

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-16 Thread Thomas Helland
2014-07-13 20:13 GMT+02:00 Matt Turner : > > On Sun, Jul 13, 2014 at 10:50 AM, Thomas Helland > wrote: > > I've considered writing an algebraic optimization to convert > > this into an ir_binop_pow. If my understanding is correct the backend > > will then implement this in a similar fashion as abo

Re: [Mesa-dev] Backends and support for pow-instructions

2014-07-13 Thread Matt Turner
On Sun, Jul 13, 2014 at 10:50 AM, Thomas Helland wrote: > I've considered writing an algebraic optimization to convert > this into an ir_binop_pow. If my understanding is correct the backend > will then implement this in a similar fashion as above if it does not > have a native pow() instruction.

[Mesa-dev] Backends and support for pow-instructions

2014-07-13 Thread Thomas Helland
Hi all, I've been looking at some shaders from Portal recently. A lot of them seem to hand-roll a pow-function with log2, multiply, and exp2, like this: r3.x = log2( r3.x ); r3.y = log2( r3.y ); r3.z = log2( r3.z ); r3.xyz = r3.xyz * vd2.zzz; r3.x = exp2( r3.x ); r3.y = exp2( r3.y ); r3.z = exp2(