- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我和我的讲师/实验室助理都被难住了。
出于某种原因,以下 HLSL 代码在输出窗口中返回:
error X8000 : D3D11 Internal Compiler error : Invalid Bytecode: Invalid operand type for operand #1 of opcode #86 (counts are 1-based).
这是 HLSL 中导致问题的函数:
// Projects a sphere diameter large in screen space to calculate desired tesselation factor
float SphereToScreenSpaceTessellation(float3 p0, float3 p1, float diameter)
{
float3 centerPoint = (p0 + p1) * 0.5f;
float4 point0 = mul( float4(centerPoint,1.0f) , gTileWorldView);
float4 point1 = point0;
point1.x += diameter;
float4 point0ClipSpace = mul(point0, gTileProj);
float4 point1ClipSpace = mul(point1, gTileProj);
point0ClipSpace /= point0ClipSpace.w;
point1ClipSpace /= point1ClipSpace.w;
point0ClipSpace.xy *= gScreenSize;
point1ClipSpace.xy *= gScreenSize;
float projSizeOfEdge = distance(point0ClipSpace, point1ClipSpace);
float result = projSizeOfEdge / gTessellatedTriWidth;
return clamp(result, 0, 64);
}
我已将其缩小到可能是“mul”内在函数的程度。我们已经从代码中取出所有内容并尝试返回一个像这样的临时变量,它工作正常:
float SphereToScreenSpaceTessellation(float3 p0, float3 p1, float diameter)
{
float temp = 0;
float3 centerPoint = (p0 + p1) * 0.5f;
float4 point0 = mul( float4(centerPoint,1.0f) , gTileWorldView);
float4 point1 = point0;
point1.x += diameter;
float4 point0ClipSpace = mul(point0, gTileProj);
float4 point1ClipSpace = mul(point1, gTileProj);
point0ClipSpace /= point0ClipSpace.w;
point1ClipSpace /= point1ClipSpace.w;
point0ClipSpace.xy *= gScreenSize;
point1ClipSpace.xy *= gScreenSize;
float projSizeOfEdge = distance(point0ClipSpace, point1ClipSpace);
float result = projSizeOfEdge / gTessellatedTriWidth;
return temp;
//return clamp(result, 0, 64);
}
如果有人想知道:
gTileWorldView, gTileProj are float4x4's in a .hlsli file
gScreenSize is a float2 in a .hlsli file.
gTessellatedTriWidth is a float in a .hlsli file.
以下函数是 2011 NVidia 着色器中的状态:http://dx11-xpr.googlecode.com/svn/trunk/XPR/Media/Effects/TerrainTessellation.fx
我尝试复制并粘贴他们的解决方案,用上面的解决方案替换他们的变量,但出现了所列的相同错误。
我完全被难住了,我需要帮助才能完成这项任务,请帮忙。
最佳答案
检查这一行:
point0ClipSpace.xy *= gScreenSize;
gScreenSize 是 float2 吗?我不相信你可以将一个 vec 乘以任何 vec 类型。
关于c++ - 错误 X8000 : D3D11 Internal Compiler error : Invalid Bytecode: Invalid operand type for operand #1 of opcode #86 (counts are 1-based),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26539596/
嗯, 当我阅读并尝试每一个类似的主题但都没有成功时,我决定发布我自己的问题。我的解决方案有一个控制台应用程序和一个用于数据访问的类库。 Nhibernate 配置位于控制台应用程序的 appconfi
我正在尝试通过“Your first NHibernate based application”来了解其他类型的 ORM(我习惯于 DevExpress 的 XPO),我知道 tut 使用的版本之间存
我正在使用 Kotlin 和 Dagger 2 开发一个 Android 项目。我有一个 NetworkModule它应该提供 Retrofit 的单例实例。我在其中定义了所有这些提供程序功能。 下面
我已经用 Java 创建了一个原型(prototype) VM(因为它是我最熟悉的语言),并且我正在尝试以字节码格式存储指令。我想知道如何在字节码中存储值,因为字节只能是 0 到 255。 举个例子:
我一直在尝试使用 ASM 框架在我感兴趣的位置注入(inject)字节码,到目前为止我已经成功了。目前我正在尝试注入(inject)代码,该代码基本上创建了一个类的新实例/对象,在阅读了一些内容之后,
假设没有为程序生成字节码,例如在 Ruby、Perl 或 PHP 中,在这种情况下,每次执行到第 1 行时是否重新解释下面的第 1 行? while ($indexArrayMoviesData <
我需要使用卡片外的字节码验证器来验证Java Card程序(盖帽文件)。 我已经手动修改了cap文件中的信息,并且我想验证新的cap文件是否类型正确。 我尝试使用com.sun.javacard.sc
我在 Startup 中设置了以下代码 IDictionary properties = new Dictionary(); properties.Add("connection.driver_cla
我在哪里可以获得NHibernate.ByteCode.CaSTLe.ProxyFactoryFactory源代码?它在 NHibernate 存储库中,但大约一个月前被删除了。它现在在哪里? 谢谢!
没有dup指令,一个让我复制堆栈顶部的指令。我可以使用哪个指令序列来复制这种行为? 最佳答案 Wasm 没有堆栈杂耍原语,因为它有局部变量。要复制操作数堆栈的顶部,您需要定义一个正确类型的局部变量。然
据我了解,GHC(Glorious Glasgow Haskell 编译器)将 Haskell 编译为“Core”,然后将该 Core 编译为机器代码。将 Haskell 程序作为 GHC Core
有一些框架可用于动态字节码生成、操作和编织(BCEL、CGLIB、javassist、ASM、MPS)。我想了解它们,但由于我没有太多时间了解所有这些的所有细节,我想看一种比较图表,说明一个与其他的优
我修改了程序集的字节码以消除错误,现在当我尝试使用它时,我得到了一个 InvalidProgramException。我所做的就是用 NOPS 替换这段代码: catch (Exception exc
我修改了程序集的字节码以消除错误,现在当我尝试使用它时,我得到了一个 InvalidProgramException。我所做的就是用 NOPS 替换这段代码: catch (Exception exc
Python 是解释型而非编译型,这意味着每一行源代码都被逐行编译为 BYTECODE。 (我刚才使用的术语“编译”是正确的吗?) 谁执行从源代码到 BYTECODE 的转换?(这是解释器程序吗?).
我正在研究 a fork来自 Jetbrains 的 FernFlower,我一直在对其进行小的改进。 关于 FernFlower 真正让我恼火的一件事是,它根据局部变量在 bpush/spush 等
这个问题几乎说明了一切,我一直在四处寻找答案,甚至通过 VM 规范,但我没有明确说明。 最佳答案 没有。 不过,还有其他一些具有跟踪 JIT 的 JVM:HotPath和 Maxine ,例如。 关于
我目前正在编写一个针对翻译中的 Java 字节码的玩具编译器。 我想知道在编写 .class 文件之前,是否存在可以在发出的字节码中进行的各种简单窥视孔优化的某种目录,也许是摘要。我实际上知道一些库具
我按照 http://asm.ow2.org/current/asm-transformations.pdf 中“3.2.6 内联方法”中的示例代码,将 MethodNode 内联到调用站点。 我的问
我在 *nix 上看到的一切都是对硬件的一组抽象,但我很好奇硬件是如何工作的。 我已经在汇编中进行了编程,但这仍然只是一组抽象。 处理器如何理解汇编操作码(作为字节码)? 设备驱动程序如何工作(在较低
我是一名优秀的程序员,十分优秀!