Random list of problems with i915g:
-- Check if PIPE_CAP_BLEND_EQUATION_SEPARATE work, the code is there.
- If not fix it! A simple task, good for beginners.
-
-- Add support for PIPE_CAP_POINT_SPRITE either via the draw module or directly
- via the hardware, look at the classic driver, more advanced.
-
- What does this button do? Figure out LIS7 with regards to depth offset.
- Dies with BadDrawable on GLXFBconfig changes/destruction. Makes piglit totally
unusable :( Upgrading xserver helped here, it doesn't crash anymore. Still
broken, it doesn't update the viewport/get new buffers.
-- Kills the chip in 3D_PRIMITIVE LINELIST with mesa-demos/fbotexture in
- wireframe mode. Changing the cullmode to cw from none mitigates the crash. As
- does emitting only one line segment (2 indices) per 3D_PRIMITIVE command in
- the batch.
-
- Y-tiling is even more fun. i915c doesn't use it, maybe there's a reason?
Texture sampling from Y-tiled buffers seems to work, though (save above
problems).
4D. Is it a big problem though? We're more limited by the # of texture
indirections and the # of instructions.
-- Leverage draw to enable more caps:
- * PIPE_CAP_TGSI_INSTANCEID
-
- Finish front/back face. We need to add face support to lp_build_system_values_array and use it in draw_llvm.c.
+- More optimizations, like replacing ADD + MUL with MAD or use DP2ADD.
+
- Replace constants and immediates which are 0,1,-1 or a combination of those with a swizzle.
-- i915_delete_fs_state doesn't call draw_delete_fragment_shader. Why?
+- Schedule instructions to minimize the number of phases. One way is to replace
+ R registers responsible for a boundary with U registers to avoid phase
+ boundaries.
+
+- Continue a previous primitive when there are no state changes
+
+- Fix fragment discard
Other bugs can be found here:
https://bugs.freedesktop.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=Drivers/Gallium/i915g