On Tue, 2009-10-13 at 12:20 -0700, Ian Romanick wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Here is the initial version of the assembly extension that was discussed
> at XDC. This is a very early alpha version, and some parts are not yet
> complete. At this point, I am mainly looking for two things in a review:
>
> - - Are there any issues marked "RESOLVED" where you disagree with the
> resolution? I'm especially interested in issues 2, 4, and 19.
>
> - - Are there any issues marked "UNRESOLVED" that you have an opinion on
> or data to support a resolution? I'm especially interested in issues 7,
> 11, 15, and 34 (resolution may be related to 4).
Ian,
I've been looking a lot into D3D shaders recently and below is my
feedback from that perspective. Given that the hardware usually followed
the D3D specs it might help resolve some issues.
(11) Is relative addressing of temporaries allowed?
UNRESOLVED. It is unclear whether the relevant hardware has this
capability.
D3D's SM3 spec doesn't allow it:
http://msdn.microsoft.com/en-us/library/ee417947%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ee418032%28VS.85%29.aspx
(14) Should the EXP and LOG instructions be included?
UNRESOLVED. It appears that no hardware capable of supporting
this extension natively support them. Would this introduce a
portability issue for old programs or D3D cross compilers?
D3D's SM3 defines approximate EXP/LOG tokens -- EXPP and LOGP - for
vertex shaders, as shown in
http://msdn.microsoft.com/en-us/library/ee417981%28VS.85%29.aspx . EXPP
is not listed in the MSDN but it is listed in the SDK docs.
(17) Should negative offsets be available for relative addressing?
UNRESOLVED. See the "FINISHME" block in section 2.X.4.2.
D3D doesn't seem to allow it.
http://msdn.microsoft.com/en-us/library/ee417949%28VS.85%29.aspx
(34) This extension provides subroutines, but doesn't provide a stack to
push and pop parameters. How do we deal with this? NV_vertex_program3
supported PUSHA/POPA instructions to push and pop address registers.
UNRESOLVED.
D3D semantics here are that subroutines have access to all registers
visible to the caller, i.e., all subroutines appear as if they were
inlined in the calling code, and have access to all registers visible at
the time.
A good example of such D3D shader is the LightingVS.fx included in the
DXSDK. It simulates fixed function lighting and has a function which
access the caller's outer loop a0 register.
> - - Are there any instructions listed that cannot be trivially supported
> on some relevant hardware? Some instructions expand to multiple real
> instructions (e.g., NRM). As long as the expansion is trivial and only
> adds one or two extra instructions, this is okay.
>
> - - Is there some important SM3 feature that's missing?
I didn't notice anything obvious.
> I plan to
> circulate this around the Wine community after the next revision.
Jose
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev