Talk:High-Level Shader Language

Merge discussion for High Level Shader Language
An article that you have been involved in editing, High Level Shader Language, has been proposed for a merge with another article. If you are interested in the merge discussion, please participate by going, and adding your comments on the discussion page. Thank you. 76.64.117.68 (talk) 01:01, 29 June 2011 (UTC)
 * Two-edit IP. – wbm1058 (talk) 16:44, 29 January 2022 (UTC)

No Shader Model 5.0 info
SM 5.0 (DX 11) has been along quite a bit of time, and still no info about it...not even a comment about it in this Talk page (besides mine, of course). — Preceding unsigned comment added by 87.221.60.52 (talk • contribs) 05:32, 26 January 2011 (UTC)

This article is fairly lacking
HLSL was designed to be similar to the Renderman shading language, and it more useful to compare it against that. There are many differnces neccecitated by hardware architecture. However, many of the language features and intrinics are exactly the same as Renderman. In addition, the language has 2 distinct differnces from C. The first is that it is natively a vector and math language, thus all types are vectored. The 2nd difference is that there is no persistent state. That is, an HLSL program can't access any memory in read/write fasion, it may read from one peice of memory (e.g. textures), and write to another (e.g.) the backbuffer), and one shader cannot pass any information to another instance of a shader (unless it is further down the graphics pipeline.) Dankbaker 15:45, 20 September 2007 (UTC)

Shader Models vs Shader Profiles — Preceding unsigned comment added by 88.218.166.45 (talk • contribs) 20:47, 19 April 2008 (UTC)

Shader Model 4.0 info?
Could some info on Shader Model 4 be added, please? — Preceding unsigned comment added by Navstar (talk • contribs) 23:59, 25 April 2006 (UTC)


 * I found some here: http://www.atomicmpc.com.au/forums.asp?s=2&c=7&t=10239&p=0. Interestingly, this info is not in Microsoft's own DirectX SDK help files - annoying. — Preceding unsigned comment added by Erich666 (talk • contribs) 21:38, 14 June 2007 (UTC)


 * There is a fair amount of material in the SDK concerning shader model 4.0. The main language feature differences are templated texture types, input and output signatures (to prevent runtime linkage), bitwise operators, native integer support (prevous versions were emmulated), and switch statements. There are few more minor features, such as the presence of attributes as in C#, but unlike C# attributes can be specified before any statement and are ignored if unrecoginized. They can be used to specifiy. Additionally, the precision required is near IEEE, with NANs and INFS and the like. There are a few differences, I can't remember them all, but the precision isn't quite as high. 1 bit ULP instead of a half bit that IEEE requires. Dankbaker 15:45, 20 September 2007 (UTC)

GLSL comparison info?
Where can one find similar info for GLSL and Cg as is provided in the two tables in this article ? —The preceding unsigned comment was added by 88.85.52.191 (talk) 17:19, 1 January 2007 (UTC).


 * Cg is HLSL. They're the same language. However, the CGFX/D3DFX layers, the runtime libraries and the compilers are different between them. 150.101.156.249 (talk) 08:12, 19 May 2011 (UTC)

>= 256
at some places there is a specification of ">= 256" which makes no sense to me. it should be "<=256". maybe it would be even better to be able to express the same without <>= just by using max (or min?) in the specs? — Preceding unsigned comment added by 85.178.238.194 (talk • contribs) 14:56, 22 May 2007 (UTC)


 * Actually, ≥ 256 is correct. This shows up here http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/Shaders/VertexShader3_0/Registers/Registers.asp in a footnote, "256 is the minimum c# register count required by vs_2_x. The MaxVertexShaderConst cap contains the actual c# register count supported by the device"
 * It also shows up here: ftp://download.nvidia.com/developer/presentations/2004/GPU_Jackpot/Shader_Model_3.pdf — Preceding unsigned comment added by Erich666 (talk • contribs) 21:41, 14 June 2007 (UTC)

Unfamiliar terms
I've written a few shaders, so I'm not entirely knowledgeable on the subject. There are lots of terms used here without explanation. Someone who really knows their stuff probably knows what these mean, but I sure don't. For instance, what is a Dependent texture limit and how's it different from a Texture instruction limit? It'd be great if someone could go through and at the very least make a quick glossary of some of the terms, or link them if they're explained elsewhere. --Numsgil (talk) 23:08, 31 August 2008 (UTC)

Vertex Texture Fetch
Please stop beating this dead horse. Vertex Texture Fetch is not a requirement of SM3.0 —Preceding unsigned comment added by 72.230.128.81 (talk) 00:25, 7 March 2011 (UTC)

vandalism/typos? 13, 513
In PS 2.0b the instruction slots are listed as 513, and in VS 2.0a temp registers are listed at 13, are these typos or vandalism? — Preceding unsigned comment added by 164.106.249.254 (talk • contribs) 16:00, 26 August 2010 (UTC)


 * Oddly, 13 seems to be correct as per Microsoft DirectX High Level Shader Language (HLSL) presentation, 512 was probably a typo and is now corrected. Fredbc (talk) 10:45, 15 August 2011 (UTC)

Add shader model 4.1 and 5
note, see above. SM 4.1 corresponds to DX 10.1, and supported by the radeon 4k series rather than the competing geforce 200TeeTylerToe (talk) 09:53, 1 July 2013 (UTC)

Radeon 9500 and up support Geometry instancing on top of VS2.0 spec
Geometry_instancing — Preceding unsigned comment added by 195.212.58.199 (talk) 15:44, 25 November 2015 (UTC)

Proposed merge of Cg (programming language) with High-Level Shading Language
The two articles describe two main implementations of the same core language. The HLSL article goes deep into the compile target profiles while the language-level information goes missing; the Cg article is basically the opposite of that. Given the copying needed to improve either article, it makes more sense to just merge them. Merging also help bring out the idea of other targets such as SPIR-V (either from MS DXC or from Kronos GLslang). --Artoria2e5 🌉 02:41, 26 April 2020 (UTC)