[可以用這個小程式來模擬NVIDIA各款GPU的弁?:lol: 官網下載連結]
Default - No emulation
NV1x (GeForce2 GTS, Quadro2, Quadro4 500XGL)
NV20 (GeForce3, Quadro DCC)
NV25 (GeForce4 Ti, Quadro4 900/700 XGL)
NV30 (GeForce FX 5800, Quadro FX 2000/1000)
NV31 (GeForce FX 5600)
NV34 (GeForce FX 5200, Quadro FX 500)
NV35 (GeForce FX 5900/5700, Quadro FX 3000/1100)
NV40 (GeForce 6800/6600, Quadro FX 4000)
NV44 (GeForce 6200)
Maximum
[ ] Shader Objects
[ ] Write Program Object Source
[ ] Write Program Object Assembly
[ ] Write Info Log
[ ] Strict Shader Portability Warnings
[ ] Expose NV4x GLSL Functionality
[ ] Force Software Rasterization
NVIDIA Proprietary
|Restore| |Apply| Built: Feb 17 2005
軟體要求:驅動程式使用 61.77 版或更新的版本 [官網下載連結]
NVemulate
NVemulate allows you to emulate the functionality of various GPUs (very slowly) in software. In addition, you can use it to control GLSL Support. For more information, please read our GLSL release notes.
New in this version of NVemulate:
Works with newer NVIDIA drivers
Lists GeForce 6200 TurboCache emulation (to expose EXT_stencil_clear_tag)
Download NVemulate (.exe) [56 KB]
Download Release Notes for NVIDIA OpenGL Shading Language Support (.pdf) [203 KB]
The following NVemulate-related sections have been excerpted from the GLSL release notes.
--------------------------------------------------------------------------------
Controlling GLSL Support with NVemulate
GLSL support is enabled by default in Release 60 drivers, but you can disable/enable GLSL support as well as manipulate software emulation of GPU feature sets, control the dumping of GLSL source and assembly text for debugging,
The NVemulate control panel is shown at right.
To enable the GLSL function, check the “Shader Objects” check box and press the “Apply” button. No changes to NVemulate settings take effect until the “Apply” button is pressed. Pressing the “Restore” button reverts the display settings to the driver’s current applied state.
Once you have clicked the “Shader Objects” check box and pressed “Apply”, then the next time you start an OpenGL program, GLSL extensions should be available for you to use. You should see the following extensions advertised in the OpenGL extensions string returned by glGetString(GL_EXTENSIONS):
ARB_shader_objects providing the API infrastructure for GLSL
ARB_shading_language_100 is a placeholder extension indicating support for the first revision (1.00) of GLSL
ARB_vertex_shader provides per-vertex programmability with GLSL
ARB_fragment_shader provides per-fragment programmability with GLSL
EXT_Cg_shader provides Cg language support for the ARB_shader_objects API
As noted earlier, per-fragment programmability is not available on non-FX Quadro and GeForce graphics cards unless 30 or better is enabled for the “Feature Set Emulation” option list. The ARB_fragment_shader and EXT_Cg_shader extensions are enabled only if per-fragment programmability is available (whether by hardware support or software emulation).
NVemulate Troubleshooting
If you do not see these extensions advertised, make sure of the following:
You are using a Release 60 driver, preferably version 61.77 or later.
Check this by going to “Display Properties”, then “Advanced”, then “GeForce XXX” or “Quadro XXX” and make sure the version numbers listed from the driver components are 6.14.10.6177 or better.
You can also check this by making sure the version string returned by glGetString(GL_VERSION) is 1.5.1 or better.
You are using a Quadro or GeForce graphics card (preferably an FX card).
TNT graphics cards do not support GLSL.
If you installed a new NVIDIA graphics driver, the GLSL-related settings are reset to their defaults (GLSL support disabled) so you must enable GLSL again with NVemulate.
The Shader Objects setting may be unchecked the first time you run it because no registry entries are set. This may be the case even if GLSL is actually supported by default. If you apply a setting with nvemulate, make sure to check Shader Objects since applying with Shader Objects unchecked will disable GLSL.
NVemulate Options to Aid Debugging
Other check boxes in the NVemulate control panel are designed to aid debugging of GLSL programs as well as help developers report GLSL issues so they can be readily addressed in future drivers.
Writing Program Object Assembly
When the “Write Program Object Assembly” box is checked, the driver outputs fasm_%d.txt and vasm_%d.txt files into the application's working directory when fragment and vertex shaders respectively are linked where the %d represents the application’s handle number for the linked program object. These files are in a form similar to what the standalone Cg compiler (cgc.exe) outputs. The assembly text conforms to the NV_vertex_program1_1, NV_vertex_program2, or NV_fragment_program extensions depending on the shader type and hardware capabilities.
Before you submit a GLSL bug report to NVIDIA, double check that the assembly generated for your successfully linked program object matches what you expect. Sometimes you may find bugs in your own shader source code by seeing how the driver’s Cg compiler technology translated your shader into assembly form. If the assembly seems correct or it clearly does not correspond to your high-level shader source, please include the assembly output with your bug report.
Writing Program Object Source
When the “Write Program Object Source” box is checked, the driver outputs fsrc_%d.txt and vsrc_%d.txt files into the application's working directory when fragment and vertex shaders respectively are linked where the %d represents the application’s handle number for the linked program object. These files contain the concatenation of all your shader object source text. This is the actual GLSL source text that is compiled and linked.
These files are generated whether or not the program object links successfully.
Check that your source code text has been properly transferred to the driver. If you still suspect an OpenGL driver bug, please send the source and assembly files.
Writing Info Log
When the “Write Info Log” box is checked, the driver outputs ilog_%d.txt files when a program object is linked where the %d represents the handle number for application’s program object being linked. The info log for a program object contains both vertex and fragment shader related errors so a single ilog_%d.txt file is generated per program object.
If this file is empty (zero length), that typically means no errors were generated and the program object linked successfully.
Check your source code and fix any errors reported in the info log that reflect errors or warnings in your shader source code. If you still cannot resolve the messages in the info log, please send the info log, source, and assembly files.
Forcing Software Rasterization
Driver bugs in GLSL programs may be due to the compiler translating your shader incorrectly into a GPU executable form or the problem may be a more basic driver bug. One way to get a “second opinion” about the behavior of your application is to force software rasterization. In this mode, all OpenGL rendering is done with the CPU rather than the GPU. This is extremely slow, particularly when per-fragment programmability is involved. However, if the results of hardware rendering and the software rasterizer do not match, that is an important clue as to the nature of a possible driver bug.
Additionally, if the hardware rendering and the software rasterizer results match, you may want to review once more whether the problem lies with your shader source before reporting a bug.
Strict Shader Portability Warnings
NVIDIA provides extensions to GLSL to make the language more productive and functional. Use the “Strict Shader Portability Warnings” to obtain additional messages in the info log output of shader and program objects.
These messages are limited right now. Please report portability issues that are not warned about by the compiler so these additional warnings can be provided.
NVIDIA NVemulate 官網
Default - No emulation
NV1x (GeForce2 GTS, Quadro2, Quadro4 500XGL)
NV20 (GeForce3, Quadro DCC)
NV25 (GeForce4 Ti, Quadro4 900/700 XGL)
NV30 (GeForce FX 5800, Quadro FX 2000/1000)
NV31 (GeForce FX 5600)
NV34 (GeForce FX 5200, Quadro FX 500)
NV35 (GeForce FX 5900/5700, Quadro FX 3000/1100)
NV40 (GeForce 6800/6600, Quadro FX 4000)
NV44 (GeForce 6200)
Maximum
[ ] Shader Objects
[ ] Write Program Object Source
[ ] Write Program Object Assembly
[ ] Write Info Log
[ ] Strict Shader Portability Warnings
[ ] Expose NV4x GLSL Functionality
[ ] Force Software Rasterization
NVIDIA Proprietary
|Restore| |Apply| Built: Feb 17 2005
軟體要求:驅動程式使用 61.77 版或更新的版本 [官網下載連結]
NVemulate
NVemulate allows you to emulate the functionality of various GPUs (very slowly) in software. In addition, you can use it to control GLSL Support. For more information, please read our GLSL release notes.
New in this version of NVemulate:
Works with newer NVIDIA drivers
Lists GeForce 6200 TurboCache emulation (to expose EXT_stencil_clear_tag)
Download NVemulate (.exe) [56 KB]
Download Release Notes for NVIDIA OpenGL Shading Language Support (.pdf) [203 KB]
The following NVemulate-related sections have been excerpted from the GLSL release notes.
--------------------------------------------------------------------------------
Controlling GLSL Support with NVemulate
GLSL support is enabled by default in Release 60 drivers, but you can disable/enable GLSL support as well as manipulate software emulation of GPU feature sets, control the dumping of GLSL source and assembly text for debugging,
The NVemulate control panel is shown at right.
To enable the GLSL function, check the “Shader Objects” check box and press the “Apply” button. No changes to NVemulate settings take effect until the “Apply” button is pressed. Pressing the “Restore” button reverts the display settings to the driver’s current applied state.
Once you have clicked the “Shader Objects” check box and pressed “Apply”, then the next time you start an OpenGL program, GLSL extensions should be available for you to use. You should see the following extensions advertised in the OpenGL extensions string returned by glGetString(GL_EXTENSIONS):
ARB_shader_objects providing the API infrastructure for GLSL
ARB_shading_language_100 is a placeholder extension indicating support for the first revision (1.00) of GLSL
ARB_vertex_shader provides per-vertex programmability with GLSL
ARB_fragment_shader provides per-fragment programmability with GLSL
EXT_Cg_shader provides Cg language support for the ARB_shader_objects API
As noted earlier, per-fragment programmability is not available on non-FX Quadro and GeForce graphics cards unless 30 or better is enabled for the “Feature Set Emulation” option list. The ARB_fragment_shader and EXT_Cg_shader extensions are enabled only if per-fragment programmability is available (whether by hardware support or software emulation).
NVemulate Troubleshooting
If you do not see these extensions advertised, make sure of the following:
You are using a Release 60 driver, preferably version 61.77 or later.
Check this by going to “Display Properties”, then “Advanced”, then “GeForce XXX” or “Quadro XXX” and make sure the version numbers listed from the driver components are 6.14.10.6177 or better.
You can also check this by making sure the version string returned by glGetString(GL_VERSION) is 1.5.1 or better.
You are using a Quadro or GeForce graphics card (preferably an FX card).
TNT graphics cards do not support GLSL.
If you installed a new NVIDIA graphics driver, the GLSL-related settings are reset to their defaults (GLSL support disabled) so you must enable GLSL again with NVemulate.
The Shader Objects setting may be unchecked the first time you run it because no registry entries are set. This may be the case even if GLSL is actually supported by default. If you apply a setting with nvemulate, make sure to check Shader Objects since applying with Shader Objects unchecked will disable GLSL.
NVemulate Options to Aid Debugging
Other check boxes in the NVemulate control panel are designed to aid debugging of GLSL programs as well as help developers report GLSL issues so they can be readily addressed in future drivers.
Writing Program Object Assembly
When the “Write Program Object Assembly” box is checked, the driver outputs fasm_%d.txt and vasm_%d.txt files into the application's working directory when fragment and vertex shaders respectively are linked where the %d represents the application’s handle number for the linked program object. These files are in a form similar to what the standalone Cg compiler (cgc.exe) outputs. The assembly text conforms to the NV_vertex_program1_1, NV_vertex_program2, or NV_fragment_program extensions depending on the shader type and hardware capabilities.
Before you submit a GLSL bug report to NVIDIA, double check that the assembly generated for your successfully linked program object matches what you expect. Sometimes you may find bugs in your own shader source code by seeing how the driver’s Cg compiler technology translated your shader into assembly form. If the assembly seems correct or it clearly does not correspond to your high-level shader source, please include the assembly output with your bug report.
Writing Program Object Source
When the “Write Program Object Source” box is checked, the driver outputs fsrc_%d.txt and vsrc_%d.txt files into the application's working directory when fragment and vertex shaders respectively are linked where the %d represents the application’s handle number for the linked program object. These files contain the concatenation of all your shader object source text. This is the actual GLSL source text that is compiled and linked.
These files are generated whether or not the program object links successfully.
Check that your source code text has been properly transferred to the driver. If you still suspect an OpenGL driver bug, please send the source and assembly files.
Writing Info Log
When the “Write Info Log” box is checked, the driver outputs ilog_%d.txt files when a program object is linked where the %d represents the handle number for application’s program object being linked. The info log for a program object contains both vertex and fragment shader related errors so a single ilog_%d.txt file is generated per program object.
If this file is empty (zero length), that typically means no errors were generated and the program object linked successfully.
Check your source code and fix any errors reported in the info log that reflect errors or warnings in your shader source code. If you still cannot resolve the messages in the info log, please send the info log, source, and assembly files.
Forcing Software Rasterization
Driver bugs in GLSL programs may be due to the compiler translating your shader incorrectly into a GPU executable form or the problem may be a more basic driver bug. One way to get a “second opinion” about the behavior of your application is to force software rasterization. In this mode, all OpenGL rendering is done with the CPU rather than the GPU. This is extremely slow, particularly when per-fragment programmability is involved. However, if the results of hardware rendering and the software rasterizer do not match, that is an important clue as to the nature of a possible driver bug.
Additionally, if the hardware rendering and the software rasterizer results match, you may want to review once more whether the problem lies with your shader source before reporting a bug.
Strict Shader Portability Warnings
NVIDIA provides extensions to GLSL to make the language more productive and functional. Use the “Strict Shader Portability Warnings” to obtain additional messages in the info log output of shader and program objects.
These messages are limited right now. Please report portability issues that are not warned about by the compiler so these additional warnings can be provided.
NVIDIA NVemulate 官網
