Re: [PATCH 5/5] d3dcompiler: Parse variable declarations.
2012/6/5 Matteo Bruni : > 2012/6/5 Rico Schüller : >> Am 05.06.2012 13:08, schrieb Matteo Bruni: >> >>> 2012/6/5 Stefan Dösinger: Am Montag, 4. Juni 2012, 17:58:24 schrieb Matteo Bruni: > > +struct hlsl_type > +{ > ... > + unsigned int dimx; > + unsigned int dimy; > ... > +}; One thing I noticed when I wrote my compiler was that a float1x1 is not the same as a float1 or float. I did not implement this difference nor do I know if any games depend on it. (That's no reason to hold up this patch, just something to keep in mind for further work) >>> >>> Yeah, I noticed that too, but it doesn't seem to make much of a >>> difference in practice. Of course, if later on it shows that it >>> actually matters for something relevant, I'll change things >>> accordingly. >>> >>> >>> >> For the effect interface, it makes a difference. See >> http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l320 >> and >> http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l501 >> . The difference is the type D3DXPC_SCALAR vs D3DXPC_VECTOR vs >> D3DXPC_MATRIX_ROWS and of course some different handling, see >> http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l1191 >> . A test may help to check how variables in shaders are handled. >> >> Cheers >> Rico Oops, I misclicked on the send button, sorry for the spam... I just did a quick test. It looks like that the actual generated code does not change but the constant table is affected by the scalar/vector/matrix type similarly to the effect interface stuff. Since the compiler seems to preserve the type of the constant, I guess in general this may matter, after all... So I presume I'll add another field to the hlsl_type structure in the near future to keep track of the scalar/vector/matrix type or something like that. Anyway this patch is not affected by this detail, so I think it is still good to go. BTW, thanks for the comments :)
Re: [PATCH 5/5] d3dcompiler: Parse variable declarations.
2012/6/5 Rico Schüller : > Am 05.06.2012 13:08, schrieb Matteo Bruni: > >> 2012/6/5 Stefan Dösinger: >>> >>> Am Montag, 4. Juni 2012, 17:58:24 schrieb Matteo Bruni: +struct hlsl_type +{ ... + unsigned int dimx; + unsigned int dimy; ... +}; >>> >>> One thing I noticed when I wrote my compiler was that a float1x1 is not >>> the >>> same as a float1 or float. I did not implement this difference nor do I >>> know >>> if any games depend on it. >>> >>> (That's no reason to hold up this patch, just something to keep in mind >>> for >>> further work) >>> >> >> Yeah, I noticed that too, but it doesn't seem to make much of a >> difference in practice. Of course, if later on it shows that it >> actually matters for something relevant, I'll change things >> accordingly. >> >> >> > For the effect interface, it makes a difference. See > http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l320 > and > http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l501 > . The difference is the type D3DXPC_SCALAR vs D3DXPC_VECTOR vs > D3DXPC_MATRIX_ROWS and of course some different handling, see > http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l1191 > . A test may help to check how variables in shaders are handled. > > Cheers > Rico
Re: [PATCH 5/5] d3dcompiler: Parse variable declarations.
Am 05.06.2012 13:08, schrieb Matteo Bruni: 2012/6/5 Stefan Dösinger: Am Montag, 4. Juni 2012, 17:58:24 schrieb Matteo Bruni: +struct hlsl_type +{ ... +unsigned int dimx; +unsigned int dimy; ... +}; One thing I noticed when I wrote my compiler was that a float1x1 is not the same as a float1 or float. I did not implement this difference nor do I know if any games depend on it. (That's no reason to hold up this patch, just something to keep in mind for further work) Yeah, I noticed that too, but it doesn't seem to make much of a difference in practice. Of course, if later on it shows that it actually matters for something relevant, I'll change things accordingly. For the effect interface, it makes a difference. See http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l320 and http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l501 . The difference is the type D3DXPC_SCALAR vs D3DXPC_VECTOR vs D3DXPC_MATRIX_ROWS and of course some different handling, see http://source.winehq.org/git/wine.git/blob/90f93e3819dcaa0cea16bd297fa69a359fb6b517:/dlls/d3dx9_36/tests/effect.c#l1191 . A test may help to check how variables in shaders are handled. Cheers Rico
Re: [PATCH 5/5] d3dcompiler: Parse variable declarations.
2012/6/5 Stefan Dösinger : > Am Montag, 4. Juni 2012, 17:58:24 schrieb Matteo Bruni: >> +struct hlsl_type >> +{ >> ... >> + unsigned int dimx; >> + unsigned int dimy; >> ... >> +}; > One thing I noticed when I wrote my compiler was that a float1x1 is not the > same as a float1 or float. I did not implement this difference nor do I know > if any games depend on it. > > (That's no reason to hold up this patch, just something to keep in mind for > further work) > Yeah, I noticed that too, but it doesn't seem to make much of a difference in practice. Of course, if later on it shows that it actually matters for something relevant, I'll change things accordingly.
Re: [PATCH 5/5] d3dcompiler: Parse variable declarations.
Am Montag, 4. Juni 2012, 17:58:24 schrieb Matteo Bruni: > +struct hlsl_type > +{ > ... > +unsigned int dimx; > +unsigned int dimy; > ... > +}; One thing I noticed when I wrote my compiler was that a float1x1 is not the same as a float1 or float. I did not implement this difference nor do I know if any games depend on it. (That's no reason to hold up this patch, just something to keep in mind for further work) signature.asc Description: This is a digitally signed message part.