Skip to content
在2010年,曾经有个d3d1x for linux的项目短暂地轰动过。它通过Gallium的state tracker,原生地支持了d3d10和11的API,能运行一些简单的demo。遗憾的是,由于Wine的人对d3d1x不是很感兴趣(d3d9还支持不过来呢),在2013年3月份,d3d1x for linux因为无法使用和无人维护,被从mesa的repository里删除了。 (题外话:尚在开发中的HLSL bytecode to GLSL编译器也用了d3d1x for linux的bytecode解析代码,里面bug不少,而且都是下标写错之类不执行到肉眼很难看出来的bug。) 与此同时,d3d9 for linux诞生了。和之前一样,它也是个state tracker,也是原生支持。更好的是,它已经可以执行d3d9的游戏,并且性能高于Wine的转换成OpenGL的方 ...
KlayGE 4.3.0的输入插件新增了对触摸输入的支持。但这部分代码在WinXP上执行的时候,说user32.dll缺少GetTouchInputInfo的入口。这里出个补丁,通过动态检测和载入可以有效的解决这个问题。同时感谢黄河水报告了这个bug。分别解压后覆盖掉源文件即可。 KlayGE源代码的补丁:KlayGE_4_3_0_patch.7z Sample的补丁:KlayGE_Samples_4_3_0_patch.z7
KlayGE 4.4的开发刚刚开始。在目前的开发版本里,编译脚本有了较大的改进,速度提升、内存消耗降低。这里就先总结一下一些经验。 MSBuild KlayGE的编译脚本原先是通过调用devenv,也就是Visual Studio的IDE来编译工程的。用户的普遍反映是编译信息不断滚动,很难看清是否有错误。前不久在编译Salvia的时候,看到空明大大的脚本输出通过不同颜色区分warning和error。问了一下才知道他调用的是MSBuild,本身就带颜色高亮。 MSBuild从VS2008开始就集成到Visual Studio了,在VS2010的时候已经全面接管了C++工程的编译。所以,如果调用devenv来编译一个工程,那么它的流程是: 启动VS IDE 启动MSBuild,调用cl和linker等 关闭VS IDE ...
经过团队成员半年来的努力,KlayGE 4.3在上周顺利发布。最近几个版本的习惯都是,在一个版本开发过程中就已经把一些ticket规划入下一个版本,并在发布之前提前进入了下一个版本的开发阶段。这里公开一下对KlayGE 4.4的一些规划。 时间线 这里列出几个重要的时间点,以供进度参考。 2013年11月30日,feature complete:所有功能都已经完成,没完成的推迟到下一个版本。 2013年12月15日,code complete:完成所有代码,除非特殊情况,否则不能在改变接口。 2013年12月31日,release:正式发布KlayGE 4.4。 必然出现 这些特性一定会出现在KlayGE 4.4中。其中有些需求来自于KlayMark。 High quality terrain:高质量的无限大地 ...
昨天微软发布了Windows 8.1 Preview,其中一个没怎么被发现的新功能是,DirectX 11.2!上一次DirectX出现.2的版本号还是在8.x时代吧。DirectX 11.2引入了以下新功能: HLSL shader linking:Shader可以分成小块,分开编译,连接后成为完整的shader。给模块替换提供了方便。甚至,在11.2中还提供了一个叫Function linking graph的功能,可以像offline shader那样,构建一个graph,每个节点是一小段shader。最后才link了送给GPU。 Inbox HLSL compiler:Win8的时候,shader编译器是个独立的dll,在metro里面不允许调用,得离线编译。现在编译器又回来了,D3DCompile都可以在metro和desktop里使用。 GPU overlay support:直接支持在3D ...
[zh] 经过KlayGE团队半年来的努力,今天KlayGE 4.3正式发布了!在这个版本的开发和测试过程中,很多朋友也提供了宝贵意见和bug报告,为KlayGE的发展和完善做出了贡献,在此表示感谢。KlayGE 4.3的主要更新如下: 一个新的子项目KFL 脚本引擎(由王锐完成) 高质量细节效果 改进的Deferred Rendering 改进阴影生成(由李渊完成) Deferred框架和GI分离 大量重构(论坛里的lcbiotech提出的建议) 大范围阴影支持 支持官方版Android NDK r8 全新的输入系统,支持触摸输入 非阻塞式资源载入和管理(论坛里的lcbiotech提出的建议) 增强的立体输出(由孙文全帮助测试) 支持嵌入其他GUI框架 支持多种OIT方 ...
前两年我曾经写过几篇关于AMD显卡上OpenGL驱动的陷阱,但原先我只在NV和AMD的卡上测试过KlayGE的例子,还从来没在Intel的集成显卡上测试过。前段时间曾经在Intel HD3000的笔记本上小测一下,结果惨不忍睹,所有的例子全部黑屏。最近在做KlayGE 4.3的最终测试和优化,就试图找一下失败的原因,以及修复的方法。这里把遇到的一些大坑总结一下,希望对遇到类似问题的朋友有所提示。 GLSL 所有例子都黑屏,最有可能的就是shader挂了。Debug下打开shader错误输出,果然,在NV和AMD驱动上都没事的GLSL遇到了编译失败。错误行是PS里的varying out vec4 v_gl_FragData。如果不用自定义的varying out,而用系统内建的gl_FragData就没事。所以判断应 ...
为了方便维护,各种编译器对C++11的支持比较已经挪到了这里。同时,还加入了ICC 14.0, GCC 4.8.1和Clang 3.3。
CPUWizard是我97年刚开始用C++的时候写的一个CPU检测和降温软件。完成功能之后就基本没有动过,除了2001年的时候加上一些对新CPU支持。有感于没找到一个CPU-Z的开源替代,同时CPUID SDK又得卖几千欧元的天价,我决定复活CPUWizard,并在近期作为GPL发布。 当然,十多年过去了,当时用的还是VC4.2或者VC5,内含大量汇编。现在虽然能直接编译,但CPU降温的部分已经失效(in/out/hlt这些指令在NT内核上必须ring 0才能执行),而且已经失去意义。所以复活后的版本就主打CPU检测的功能。同时还会做很多现代化的改造: 分为SDK和UI两层 cmake的项目文件,跨平台的代码,去掉汇编 支持现代的CPU 检测结果可以云存储  
IE 10 for Windows 7在发布的时候,包含了一个补丁KB 2670838,给Win7带来了DirectX 11.1和DXGI 1.2的部分能力。这个补丁也可以在不需要IE10的时候单独安装。详细的更新内容在这里。比较有意思的是,WARP被升级到支持feature level 11.1了。 很遗憾的是,如果装了KB 2670838,PIX for Windows和D3D11_CREATE_DEVICE_DEBUG会受影响,因为DirectX SDK (June 2010)的debug runtime和KB 2670838不兼容。解决方法是安装Windows 8.0 SDK standalone,或者升级到使用Win8 SDK的VS 2012 Update 2。