summaryrefslogtreecommitdiff
path: root/ToDo.mdwn
blob: 272833a446700683e3fac7bf776510faf39f3f63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109


## todo in DRI driver

See also [[IanRomanickToDo|IanRomanickToDo]]. 


### List of OpenGL Extensions supported at least partially by the Hardware but not by DRI driver

This list is probably incomplete. 

[[ARB_fragment_program_shadow|http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program_shadow.txt]]: `i915` 

* Mesa's fragment program code will need some work to support this.  It doesn't currently track information about shadow samplers in the texture instructions. According to [[this|http://cgit.freedesktop.org/mesa/mesa/log/?qt=grep&q=fragment_program_shadow]] mesa and i965 parts should be done. 
[[ARB_texture_cube_map|http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_cube_map.txt]]: `tdfx` (possibly on Voodoo 4/5) 

[[ARB_texture_env_combine|http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_env_combine.txt]] / [[EXT_texture_env_combine|http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_env_combine.txt]]: `rage128` (with some fallbacks), `savage` 

[[ARB_texture_env_crossbar|http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_env_crossbar.txt]]: `rage128`, `i915` 

[[ARB_texture_non_power_of_two|http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_non_power_of_two.txt]]: `mga` (G400) (?) 

[[ARB_vertex_blend|http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt]] / [[ARB_matrix_palette|http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt]]: `radeon`, `r200` 

* This would also need support in Mesa. 
[[ATI_envmap_bumpmap|http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt]]: `radeon`, `r200`, `mga`, `i830`, `savage` (?) 

* This would also need support in Mesa. [[Mesa  part is done|http://cgit.freedesktop.org/mesa/mesa/commit/?id=114152e068ec919feb0a57a1259c2ada970b9f02]] 
[[ATI_fragment_shader|http://oss.sgi.com/projects/ogl-sample/registry/ATI/fragment_shader.txt]] / [[ATI_text_fragment_shader|http://oss.sgi.com/projects/ogl-sample/registry/ATI/text_fragment_shader.txt]]: `i915` 

[[EXT_fog_coord|http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt]]: `savage`, `via` 

[[EXT_paletted_texture|http://oss.sgi.com/projects/ogl-sample/registry/EXT/paletted_texture.txt]] / [[EXT_shared_texture_palette|http://oss.sgi.com/projects/ogl-sample/registry/EXT/shared_texture_palette.txt]]: `r128`, `mga` (probably G200 only), `i810`, `i830`, `via` 

* The G400 is a little hinkey about the way it handles texture palettes.  The texture palette has no format.  It's just a 256x16-bit array of values.  To use a color-index texture, you blit it to a new location.  This performs a color expansion on the texture.  The "expanded" texture is then used for texture operations.  This may or may not be that useful.  The only savings would be texture upload bandwidth. 
[[EXT_texture3D|http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture3D.txt]]: `radeon` (with some limitations) [[how to do it on r100|http://dri.sourceforge.net/IRC-logs/20040510.txt]] [[related bug #4799|https://bugs.freedesktop.org/show_bug.cgi?id=4799]] 

[[EXT_texture_compression_s3tc|http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt]]: `radeon`, `r200`, `i830`, `tdfx` (voodoo4/5), `savage` 

* There's an issue: see S3TC 
[[EXT_texture_compression_dxt1|http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_dxt1.txt]]: `radeon`, `r200`, `i830`, `tdfx` (voodoo4/5), `savage` 

[[EXT_texture_filter_anisotropic|http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_filter_anisotropic.txt]]: `mga` (G400) [[experimental patches|http://www.sci.fi/~syrjala/gl/]], `savage` (?), `unichrome` (?) 

[[MESA_ycbcr_texture|http://oss.sgi.com/projects/ogl-sample/registry/MESA/ycbcr_texture.txt]]: `tdfx`, `gamma` (maybe), `savage` 

[[NV_fog_distance|http://oss.sgi.com/projects/ogl-sample/registry/NV/fog_distance.txt]]: `radeon`, `r200` 

* The `radeon` register header gives no indication that this extension is supportable on that hardware, but Apple [[supports it|http://developer.apple.com/graphicsimaging/opengl/extensions.html#GL_NV_fog_distance]]. 
[[SGIS_sharpen_texture|http://oss.sgi.com/projects/ogl-sample/registry/SGIS/sharpen_texture.txt]]: unichrome (?) 

* This would also need support in Mesa. The [[UniChrome Windows driver|http://delphi3d.net/hardware/viewreport.php?report=962]] doesn't support this extension, but [[via_3d_reg.h|http://freedesktop.org/cgi-bin/viewcvs.cgi/mesa/Mesa/src/mesa/drivers/dri/unichrome/via_3d_reg.h?view=markup]] (search for "_Sharp") has some register defines that appear to be for it.  Some experimentation would be needed. 

### Non-OpenGL features

These are features the hardware provides that don't have a corresponding OpenGL extension. 

Texture wrap extensions: `rage128`, `i810` 

texture compression: `mach64`, `rage128` 


### Resources

* mail about this topic: [[http://marc.theaimsgroup.com/?l=dri-devel&m=105332698114871&w=2|http://marc.theaimsgroup.com/?l=dri-devel&m=105332698114871&w=2]] 
* Matrox G400 Spec. [[http://www.matrox.com/mga/products/tech_info/pdfs/g400/chip_specs.pdf|http://www.matrox.com/mga/products/tech_info/pdfs/g400/chip_specs.pdf]] 
* OpenGL Extension Registry: [[http://oss.sgi.com/projects/ogl-sample/registry/|http://oss.sgi.com/projects/ogl-sample/registry/]] 
* OpenGL Hardware Registry Database: [[http://delphi3d.net/hardware/|http://delphi3d.net/hardware/]] 
* On the Status page theres info about already implemented Extensions. 
* There is an issue with [[S3TC|http://dri.freedesktop.org/wiki/S3TC]]... 

### Enhancements

* Improve texture handling (`radeon`, `r200`) 
* Include Jakub Jelineks [[libGL.so optimizations|http://marc.theaimsgroup.com/?l=dri-devel&m=105189638411789&w=2]]. [[IanRomanick|IanRomanick]] has been [[working on this|http://marc.theaimsgroup.com/?t=108786261800004&r=1&w=2&]]. 
* Fix glDrawElements/glDrawRangeElements to not convert everything to GL_UNSIGNED_INT if the driver can handle GL_UNSIGNED_SHORT. 
* ATIRage128: revive hw-accelerated projective texturing (was already working for singletexturing, should be possible for multitexturing, too) - [[recent attempt|http://thread.gmane.org/gmane.comp.video.dri.devel/36982]] 

### Big Projects

* Unify drivers where it makes sense.  `radeon` and `r200` are begging to be unified. Radeon/r200/r300 work was started as part of new memory management-related rework in [[branch|http://cgit.freedesktop.org/mesa/mesa/commit/?h=radeon-rewrite&id=692ca82116485a9c6191e5265c5b369d5b4f82f3]] and then was merged into mesa master. `i915` could be extended to cover `i810` chips as well (and possibly even `i740` if you're insane enough to try). 
* Port the nVidia driver from UtahGLX to DRI. [[WIP as nouveau project|http://nouveau.freedesktop.org/wiki/]] 
* Finish the [[S3Virge|S3Virge]] and Trident drivers from old CVS branches. 
* Convert remaining drivers to t_vertex.c [[freedesktop bug id for radeon, with patch|https://bugs.freedesktop.org/show_bug.cgi?id=2195]] 
* Get codegen working, tested, and enabled. 
* Implement OpenGL 2.0. Done for core mesa since Mesa 7.0 and as in  (still unreleased) mesa-7.9 r300/r600, i965, nvfx/nv50 (Nouveau), and llvmpipe (new software rasterizer) advertise at least 2.0 and in some cases 2.1 support. Bugs included. 
* [[DirectRenderingToRedirectedWindows|DirectRenderingToRedirectedWindows]] Nearly done as part of DRI2 rewrite. You need new X server and kernel drivers. 
* Openchrome-ttm [[mesa part|http://cgit.freedesktop.org/mesa/mesa/log/?h=openchrome-branch]] , [[DRM part|http://cgit.freedesktop.org/mesa/drm/log/?h=modesetting-newttm]] , [[DDX|http://svn.openchrome.org/svn/branches/ttm_branch/]], [[Outdated instruction/announce|http://wiki.openchrome.org/pipermail/openchrome-devel/2009-January/000192.html]] 


---

 


## todo in DRI wiki pages

Here is a list of all Wiki pages requiring attention:  

Non-Wiki pages that need their important parts put into the wiki: 

* [[http://dri.sourceforge.net/faq.phtml|http://dri.sourceforge.net/faq.phtml]] 
Other structural changes the Wiki requires: 

* Do not use automatic wikinames. 
* Add a pragma to enable/disable the source code documentation x-refering. 
Anti-Spam Protection: 

* [[!MoinMoin AntiSpamGlobalSolution desc="AntiSpamGlobalSolution"]]