So, Microsoft is making an opensource HLSL-to-almost-LLVM compiler, and Khronos is making an opensource HLSL/GLSL-to-almost-LLVM compiler.

Apple MetalSL is almost C++ (and new HLSL will get closer to C++). Although Apple's compiler is not open-source.

https://twitter.com/zeuxcg/status/710698923216621568

https://www.pcper.com/news/Graphics-Cards/Microsoft-Publishes-HLSL-Shader-Model-60-MSDN-Docs

https://msdn.microsoft.com/en-us/library/windows/desktop/mt733232%28v=vs.85%29.aspx#hardware_capability

Microsoft Publishes HLSL Shader Model 6.0 MSDN Docs
Subject: Graphics Cards | August 2, 2016 - 07:37 AM | Scott Michaud
Tagged: windows 10, vulkan, microsoft, DirectX 12

Update (August 3rd @ 4:30pm): Turns out Khronos Group announced at SIGGRAPH that Subgroup Instructions have been recently added to SPIR-V (skip video to 21:30), and are a "top priority" for "Vulkan Next". Some (like WaveBallot) are already ARB (multi-vendor) OpenGL extensions, too.

Original post below:

DirectX 12's shading language will receive some new functionality with the new Shader Model 6.0. According to their GDC talks, it is looking like it will be structured similar to SPIR-V in how it's compiled and ingested. Code will be compiled and optimized as an LLVM-style bytecode, which the driver will accept and execute on the GPU. This could make it easy to write DX12-compatible shader code in other languages, like C++, which is a direction that Vulkan is heading, but Microsoft hasn't seemed to announce that yet.

View Full Size

This news shows a bit more of the nitty gritty details. It looks like they added 16-bit signed (short) and unsigned (ushort) integers, which might provide a performance improvement on certain architectures (although I'm not sure that it's new and/or GPUs exist the natively operate upon them) because they operate on half of the data as a standard, 32-bit integer. They have also added more functionality, to both the pixel and compute shaders, to operate in multiple threads, called lanes, similar to OpenCL. This should allow algorithms to work more efficiently in blocks of pixels, rather than needing to use one of a handful of fixed function calls (ex: partial derivates ddx and ddy) to see outside their thread.

When will this land? No idea, but it is conspicuously close to the Anniversary Update. It has been added to Feature Level 12.0, so its GPU support should be pretty good. Also, Vulkan exists, doing its thing. Not sure how these functions overlap with SPIR-V's feature set, but, since SPIR was original for OpenCL, it could be just sitting there for all I know.

https://blogs.msdn.microsoft.com/chuckw/2012/05/07/hlsl-fxc-and-d3dcompile/

With Visual Studio 2012 or later, HLSL and the FXC.EXE tool is now integrated into build environment and the Windows 8.x SDK / Windows 10 SDK. If you add .hlsl and .fx extension files to your project, there are properties for controlling how the HLSL compiler is invoked as part of your build including target profile, entry point name, etc. The resulting compiled shader uses the default extension of .cso (Compiled Shader Object). The texture editor supports HLSL colorization, and the Visual Studio Graphics Diagnostics feature provides support for debugging HLSL as well.

微软的HLSL Shader Model 6.0 compiler要转向LLVM了,开源的节奏. Apple/Khronos都有各自计划的更多相关文章

  1. Shader Model 3.0:Using Vertex Textures SM3:使用顶点纹理 (NVIDIA spec, 6800支持使用D3DFMT_R32F and D3DFMT_A32B32G32R32F的纹理格式实现Vertex Texture。)

    翻译者 周波 zhoubo22@hotmail.com 版权所有 Philipp Gerasimov Randima (Randy) Fernando Simon Green NVIDIA Corpo ...

  2. Asm Shader Reference --- Shader Model 2.0 part

    ps部分 ps_2_0 概览   Instruction Set                                   Name Description Instruction slot ...

  3. Asm Shader Reference --- Shader Model 3.0 part

    ps部分 概览   Instruction Set                                       Name Description Instruction slots S ...

  4. Shader Model 版本与DirectX的关系(OpenGL对应的呢?)

    http://blog.sina.com.cn/s/blog_6e521a600100q4dr.html DX9还是能支持到固定管线的,虽然说是在内部被转换成shader: DX10明确不再支持固定管 ...

  5. Unified shader model

    https://en.wikipedia.org/wiki/Unified_shader_model In the field of 3D computer graphics, the Unified ...

  6. HLSL Shader编程基础总结

    转自:https://blog.csdn.net/Blues1021/article/details/47093487 基本前提概念 Shader是一种映射到GPU硬件汇编语言上的高级语言,Shade ...

  7. iis重写模块实现程序自动二级域名,微软提供的URL重写2.0版本适用IIS以上

    在iis7以后微软提供了url重写2.0版本,可以通过安装重写组件来实现.适用于iis7以上版本. 安装有两种方式可以选择,一是下载安装文件,二是通过“web平台安装程序”安装 1.下载安装文件 下载 ...

  8. 微软推出ASP.NET Core 2.0,并支持更新Visual Studio 2017

    微软推出ASP.NET Core 2.0的一般可用性,并发布.NET Core 2.0.该公司还推出了其旗舰集成开发环境(IDE)的更新:Visual Studio 2017版本15.3和Visual ...

  9. Asm Shader Reference --- Shader Model 2.x part

    ps部分 概览   Instruction Set                                       Name Description Instruction slots S ...

随机推荐

  1. CentOS 7下安装Mono

    最近的项目中需要用到Linux作为服务器,而我们的开发技术是基于.NET的,所以只能在CentOS 7上尝试着安装一下Mono,下面是具体的安装步骤: 1.安装一些必备的依赖项 yum -y inst ...

  2. gulp使用技巧-删除node_modules文件夹,解决目录层次太深删除报错的问题

    问题描述: 在使用gulp当中,自动生成的node_modules文件夹,因为文件目录层级太深,无法系统删除,用360粉碎工具也报错 解决方法: 使用npm中的插件rimraf,专门用于删除的模块插件 ...

  3. SpringMVC中遇到的Http400 Bad Request 总结

    在搭建SpringMVC环境,在使用中遇到了多次Bad Request的连接,下面来总结下. 1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串 2.因为我的粗心,本来是要通过Ajax ...

  4. OSSFS将OSS bucket 挂载到本地文件系统及注意事项

    OSSFS将OSS bucket 挂载到本地文件系统及注意事项 下载ossfs安装包 wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/as ...

  5. VisualStudio控制台输出窗口一闪而过

    我用到开发环境是visual studio 2010,写的简单的控制台程序,结果一按control+F5输出窗口出现后立刻就消失了(平时很少这样的呀),按照以往经验,加上了在程序结尾getchar() ...

  6. 使用vs2008搭建php扩展环境

    所需要的工具或者文件: 1.php源码,去官网下载即可.http://windows.php.net/download 2.php-sdk:php 开发工具包 3.deps类库 4.Cygwin:wi ...

  7. html中的a标签(超链接)的使用

    a标签即超链接,用于从一张页面链接到另一张页面.其最重要的属性是href属性,它指示链接的目标. 例如: <a href="http://www.baidu.com/"> ...

  8. LeetCode之389. Find the Difference

    -------------------------------------------------- 先计算每个字母的出现次数然后减去,最后剩下的那一个就是后来添加的了. AC代码: public c ...

  9. Android -- Activity,Fragment lifecycle

    Activity Lifecyce Fragment Lifecycle: 程序运行: 09-16 13:59:22.883 19022-19022/com.example.android.archi ...

  10. 数据库事务(Database Transaction)概述

    事务概念 事务可以用很多很多不同的方式去定义.事务是数据库操作执行的一个逻辑工作单元,是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位.例如, 在关系数据库中, 一 ...