这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 cgc,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
CGC - cg 编译器驱动程序
概要
cgc [选项] 文件 ...
商品描述
CGC 是独立的 Cg 编译器,可将 Cg 或 GLSL 程序转换为 OpenGL 或
DirectX 着色器汇编代码,或 OpenGL 或 DirectX 着色语言代码。
配置
基础 选项
-条目 姓名
设置要编译的着色器的入口函数。 默认为“主要”。
-o 文件
设置要写入的输出文件。 默认输出为“stdout”。
-l 文件
设置列表文件,其中写入错误和警告消息。 默认为
“标准”。
-轮廓 姓名
选择目标配置文件,指定要生成的着色器语言。
-配置文件选择 选择1,选择2,...
-po 选择1,选择2,...
设置一个或多个配置文件特定选项。
-禁止驶入
设置只检查模式,不编译着色器,但编译输入文件中的所有代码
检查语法正确性。
语言 选项
-ogsl
将源语言设置为 GLSL。
-眼睛
将源语言设置为 OpneGL/ES GLSL。
-严格的
-nostrict
启用或禁用严格的类型检查,其中最有问题的构造将
标记为警告。
-glsl错误
与“-strict”类似,但此外,不可移植的 GLSL 结构将被标记为错误。
-警告
禁用所有警告。
-警告=不,不,...
禁用一个或多个特定编号的警告。
-fx
-nofx
启用或禁用 FX 解析模式,其中识别 FX 关键字。 默认为开
在 Cg 模式下和在 GLSL 模式下关闭。
-nostdlib
禁用标准库。
代码 代 附加选项
-快速数学
-没有快速数学
启用或禁用可能会改变/失去低位精度的优化,例如
作为关联变换,如“(a + b) + c”而不是“a + (b + c)”。 默认是
“-fastmath”。
-快速精度
-无快速精度
启用或禁用优化以低于指定的精度执行操作
当结果稍后转换为较低的精度或操作数是
最初的精度较低。 默认值为“-nofastprecision”。
-最佳精度
始终以最佳的精度做事; 只使用较低精度的操作
如果没有差异的可能性。 意味着“-nofastmath”和
“-nofastprecision”。
-展开全部|无|计数=N
控制循环展开。 “-unroll all”将强制展开所有可以
展开,而“-unroll none”将阻止展开,除非代码不能否则
在当前配置文件中生成(因此它不会影响不
支持循环)。 "展开计数=N " 将展开循环,如果估计
结果代码小于 N 指示。 估计不考虑
展开后可能会做进一步的优化,所以它可能相当
不准确的。
-内联所有|无|计数=N
控制函数内联。 设置“-inline none”将另外禁用内联
带有显式“内联”关键字的函数,否则总是内联的。
设置“-inline count=0”将有效地禁用所有函数的内联
没有明确的“内联”关键字。
-ifcvt 全部|无|计数=N
控制 if 转换(用条件替换小的 if/else 块
作业)。
-ON 设置编译器的优化级别,从 0(最低)到 3(最高)。 更高
值可能会产生更好的代码,并会导致编译时间增加。 默认是
“-O1”。
-循环限制 N
假设循环编译器无法确定数量的上限
迭代可以循环多达 N 迭代。 这可能需要生成额外的代码
对于某些配置文件中的此类循环。
-d3d
生成与 Direct3D 规范兼容的代码。
-MaxInstInBasicBlock N
打破基本块后 N 指示。 这对局部优化有影响
不跨越基本块边界,并可能避免在
由于基本块中的非线性算法,存在巨大的基本块
大小。
-最大卷数 N
已弃用。 不要展开循环超过 N 迭代。 使用 -unroll 选项
相反,它提供了更好的细粒度控制。
预处理器 附加选项
-DMACRO[=VALUE]
设置预处理器宏。 如果 VALUE 未指定,默认为 1。
-I目录
在“#include”文件的搜索路径末尾添加一个目录。 默认的
搜索路径为空。
-E 不编译,只对输入进行预处理。
-P 使用“-E”,禁止在输出中生成“#line”指令。
-C 使用“-E”,在输出中保留注释。
-MG 忽略找不到的“#include”文件,而不是发出错误。
-M
-MM
-医学博士
-MMD
-MP
-MF 文件
-公吨 目标
-MQ 目标
生成关于“#include”d 文件的依赖信息。 这些选项旨在
与“gcc”的选项兼容。
其他 附加选项
-安静的
-q 抑制所有“噪音”输出(版权通知,指示哪些文件正在被
编译等)。 使用 -o 和 -l,应该不会产生任何输出。
-无代码
抑制最终代码生成。 实际上会一直运行通过编译器
(因此应诊断存在的任何错误),但不产生任何实际输出代码。
-v
- 版
将编译器版本信息打印到列表。
-h 将简短选项帮助摘要打印到标准输出并退出。
-救命
打印更长的选项帮助摘要到标准输出,包括所有支持的配置文件和
配置文件选项,然后退出。
-类型 类型定义
为变量设置覆盖类型绑定。
-类型文件 文件
从文件中读取变量的覆盖类型绑定。
-转储输入绑定 文件
将所有变量的类型绑定转储到文件。 该文件可能会被传递回
带有“-typefile”的编译器。
调试 选项
-调试
启用“调试”内置函数以立即中止着色器的操作
输出一个值。
-调试器
类似于“-debug”,除了着色器不会中止; 相反,它继续并输出
调用的最后一个“调试”函数的值。
-调试默认值=折扣值
与“-debug”类似,除非未达到“debug”调用,否则输出将设置为
指定值而不是着色器通常计算的值。
- 已弃用
对使用的任何已弃用功能发出错误而不是警告。
PROFILES
A 轮廓 指定 cg 编译器的输出语言(着色器程序集
方言或阴影语言)。 每个配置文件都有自己的一组 轮廓 选项 这样可以
为它设置,尽管许多相关的配置文件具有相似或相同的选项。 简介
可以按程序类型、API 或 GPU 生成进行分组。
DirectX 配置文件
ds_5_0、gs_4_0、gs_5_0、hlslf、hlslv、hs_5_0、ps_1_1、ps_1_2、ps_1_3、ps_2_0、ps_2_x、
ps_3_0, ps_4_0, ps_5_0, vs_1_1, vs_2_0, vs_2_x, vs_3_0, vs_4_0, vs_5_0
OpenGL 配置文件
arbfp1, arbvp1, fp20, fp30, "fp30unlimited", fp40, "fp40unlimited", glslf, glslg,
glslv、gp4fp、gp4gp、gp4vp、gp5fp、gp5gp、gp5tcp、gp5tep、gp5vp、vp20、vp30、vp40
片段配置文件
arbfp1, fp20, fp30, "fp30unlimited", fp40, "fp40unlimited", glslf, gp4fp, gp5fp,
hlslf、ps_1_1、ps_1_2、ps_1_3、ps_2_0、ps_2_x、ps_3_0、ps_4_0、ps_5_0
几何轮廓
glslg、gp4gp、gp5gp、gs_4_0、gs_5_0
顶点轮廓
arbvp1、glslv、gp4vp、gp5vp、hlslv、vp20、vp30、vp40、vs_1_1、vs_2_0、vs_2_x、vs_3_0、
vs_4_0、vs_5_0
GeForce 3/4 系列配置文件
FP20、VP20
GeForce 5 系列配置文件
FP30、VP30
GeForce 6/7 系列配置文件
FP40、VP40
GeForce 8/9/100/200/300 系列,OpenGL 3.x Quadro 配置文件
gp4fp、gp4gp、gp4vp
GeForce 400 系列,OpenGL 4.x Quadro 配置文件
gp5fp、gp5gp、gp5tcp、gp5tep、gp5vp
本人简介 选项
这是所有配置文件及其相应配置文件选项的完整列表
arbfp1
目标 ARB_片段_程序 OpenGL扩展
"-po" "ARB_draw_buffers"
使用 ARB_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。 这是
默认值
"-po" "ATI_draw_buffers"
使用 ATI_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。
"-po" "MaxDrawBuffers="N
设置渲染缓冲区目标的最大数量。 默认为 1
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 32
"-po" "MaxTexIndirections="N
设置输出程序中允许的最大纹理间接数。
默认值为1024
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 1024
"-po" "NumMathInstructionSlots="N
设置输出程序中非纹理指令的最大数量。
默认值为1024
"-po" "NumTemps="N
设置输出程序中 TEMP 寄存器的最大数量。 默认值为 32
"-po" "NumTexInstructionSlots="N
设置输出程序中纹理指令的最大数量。 默认是
1024
abvp1
目标 ARB_顶点_程序 OpenGL扩展
"-po" "MaxAddressRegs="N
设置输出程序中 ADDRESS 寄存器的最大数量。 默认为 1
“-po”“最大指令=”N
设置输出程序中的最大指令数。 默认值为 1024
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 96
"-po" "NumTemps="N
设置输出程序中 TEMP 寄存器的最大数量。 默认值为 32
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
fp20
目标 NV_register_combiners2 和 NV_texture_shader OpenGL 扩展
fp30
目标 NV_片段_程序 OpenGL扩展
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 256
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 32
“fp30无限”
与 fp30 相同,但取消了对寄存器和指令的各种硬件限制
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 4194304
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 512
fp40
目标 NV_fragment_program2 OpenGL扩展
"-po" "appleKilWAR"
在 OSX-tiger 实现中使用 KIL 指令解决各种错误
NV_fragment_program2
"-po" "ARB_draw_buffers"
使用 ARB_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。 这是
默认值
"-po" "ATI_draw_buffers"
使用 ATI_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认为无限
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认是
无穷
"-po" "NumTemps="N
设置输出程序中 TEMP 寄存器的最大数量。 默认是
无穷
"-po" "OutColorPrec="N
If N 是 3 或 4,强制输出到 fp16 精度。 如果 N 是2,强制输出到fp32
精确。
“fp40无限”
与 fp40 相同,但取消了对寄存器和指令的各种硬件限制
"-po" "appleKilWAR"
在 OSX-tiger 实现中使用 KIL 指令解决各种错误
NV_fragment_program2
"-po" "ARB_draw_buffers"
使用 ARB_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。 这是
默认值
"-po" "ATI_draw_buffers"
使用 ATI_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 1024
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 4194304
"-po" "NumTemps="N
设置输出程序中 TEMP 寄存器的最大数量。 默认值为 512
"-po" "OutColorPrec="N
If N 是 3 或 4,强制输出到 fp16 精度。 如果 N 是2,强制输出到fp32
精确。
“通用的”
以不可执行的格式生成程序的转储
glslf、glslg 和 glslv
针对 OpenGL 着色语言 (GLSL) v1.10。 glslf 目标片段程序
而 glslv 以顶点程序为目标
版本=VAL
要定位的 GLSL 版本。 支持的版本是 100, 110, 120, 130, 140 和 150.
用户TexCoord
使用用户定义的变化而不是 gl_TexCoord.
ATI_draw_buffers
使用 ATI_draw_buffers 地铁延长线。
EXT_gpu_shader4
使用 EXT_gpu_shader4 有用的扩展。
GP4FP
目标 NV_gpu_program4 和 NV_fragment_program4 OpenGL 扩展。
"-po" "fastimul"
假设整数乘法输入最多有 24 个有效位。
"-po" "NV_shader_buffer_load"
使用 NV_shader_buffer_load OpenGL 扩展。
"-po" "NV_parameter_buffer_object2"
使用 NV_parameter_buffer_object2 OpenGL 扩展。
"-po" "PaBO2"
使用 NV_parameter_buffer_object2 OpenGL 扩展。
"-po" "ARB_draw_buffers"
使用 ARB_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。 这是
默认值
"-po" "ATI_draw_buffers"
使用 ATI_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。
"-po" "pixel_center_integer"
使用整数像素中心。
"-po" "origin_upper_left"
使用左上角像素原点。
GP4GP
目标 NV_gpu_program4 和 NV_几何_程序4 OpenGL 扩展。
"-po" "点"
"-po" "LINE"
"-po" "LINE_ADJ"
"-po" "三角形"
"-po" "TRIANGLE_ADJ"
设置几何程序的输入基元类型
"-po" "POINT_OUT"
"-po" "LINE_OUT"
"-po" "TRIANGLE_OUT"
设置几何程序的输出基元类型
“-po”“顶点=”N
设置几何程序输出的顶点数
GP4VP
目标 NV_gpu_program4 和 NV_vertex_program4 OpenGL 扩展。
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
GP5FP
目标 NV_gpu_program5 OpenGL 扩展。
"-po" "fastimul"
假设整数乘法输入最多有 24 个有效位。
"-po" "NV_shader_buffer_load"
使用 NV_shader_buffer_load OpenGL 扩展。
"-po" "NV_parameter_buffer_object2"
使用 NV_parameter_buffer_object2 OpenGL 扩展。
"-po" "PaBO2"
使用 NV_parameter_buffer_object2 OpenGL 扩展。
"-po" "ARB_draw_buffers"
使用 ARB_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。 这是
默认值
"-po" "ATI_draw_buffers"
使用 ATI_draw_buffers 多个渲染缓冲区目标 (MRT) 的选项。
"-po" "pixel_center_integer"
使用 ARB_fragment_coord_conventions 用于指定整数像素的 OpenGL 扩展
中心。
"-po" "origin_upper_left"
使用 ARB_fragment_coord_conventions 用于指定左上角的 OpenGL 扩展
像素原点。
"-po" "NV_early_fragment_tests"
在片段程序调用之前执行深度和模板测试。
GP5GP
目标 NV_gpu_program5 OpenGL 扩展。
"-po" "点"
"-po" "LINE"
"-po" "LINE_ADJ"
"-po" "三角形"
"-po" "TRIANGLE_ADJ"
设置几何程序的输入基元类型
"-po" "POINT_OUT"
"-po" "LINE_OUT"
"-po" "TRIANGLE_OUT"
设置几何程序的输出基元类型
“-po”“顶点=”N
设置几何程序输出的顶点数
GP5TCP
目标 NV_曲面细分_程序 和 NV_gpu_program5 OpenGL 扩展。
GP5TEP
目标 NV_曲面细分_程序 和 NV_gpu_program5 OpenGL 扩展。
GP5VP
目标 NV_gpu_program5 OpenGL 扩展。
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
hlslf hlslv 回复
针对 Microsoft 高级着色语言 (HLSL)。 hlslf 目标像素程序
而 hlslv 以顶点程序为目标
ps_1_1 ps_1_2 ps_1_3
针对 DirectX 像素程序
"-po" "MaxPixelShaderValue="N
像素着色器中可表示的最大绝对值。 默认值为 1。
ps_2_0 ps_2_x
针对 DirectX 像素程序
"-po" "MaxDrawBuffers="N
设置渲染缓冲区目标的最大数量。 默认为 1
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认为 96 或
512
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认为 12 或 32
ps_3_0
针对 DirectX 像素程序
"-po" "MaxDrawBuffers="N
设置渲染缓冲区目标的最大数量。 默认为 1
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 224
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 32768
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 32
"-po" "OutColorPrec="N
If N 是 3 或 4,强制输出到 fp16 精度。 如果 N 是2,强制输出到fp32
精确。
vp20
目标 NV_顶点_程序 OpenGL扩展
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 96
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
vp30
目标 NV_vertex_program2 OpenGL扩展
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 256
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
vp40
目标 NV_vertex_program3 OpenGL扩展
"-po" "MaxAddressRegs="N
设置输出程序中 ADDRESS 寄存器的最大数量。 默认为 2
“-po”“最大指令=”N
设置输出程序中的最大指令数。 默认值为 2048
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 544
"-po" "NumTemps="N
设置输出程序中 TEMP 寄存器的最大数量。 默认值为 32
"-po" "PosInv"
为 POSITION 输出生成位置不变代码(与固定函数相同)
vs_1_1
目标 DirectX 顶点程序
"-po" "dcls"
输出 dx9 样式的 dcls 语句
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 96
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 128
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 12
vs_2_0 vs_2_x
目标 DirectX 顶点程序
"-po" "dcls"
输出 dx9 样式的 dcls 语句
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 256
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 256
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 12
vs_3_0
目标 DirectX 顶点程序
"-po" "dcls"
输出 dx9 样式的 dcls 语句
"-po" "MaxLocalParams="N
设置可用的统一参数槽的最大数量。 默认值为 256
"-po" "NumInstructionSlots="N
设置输出程序中的最大指令数。 默认值为 32768
"-po" "NumTemps="N
设置输出程序中的最大临时数。 默认值为 32
环境
使用 onworks.net 服务在线使用 cgc