i965/nir/vec4: Implement various rounding functions
[mesa.git] / src / mesa / drivers / dri / nouveau / nv04_surface.c
index 103453f1b9ad5fe630a83935492e13478c5bf406..968c05f6593d8fbc5f39dfc99add5615ba53fed1 100644 (file)
 #include "nv04_driver.h"
 
 static inline int
-swzsurf_format(gl_format format)
+swzsurf_format(mesa_format format)
 {
        switch (format) {
-       case MESA_FORMAT_A8:
-       case MESA_FORMAT_L8:
-       case MESA_FORMAT_I8:
-       case MESA_FORMAT_RGB332:
+       case MESA_FORMAT_A_UNORM8:
+       case MESA_FORMAT_L_UNORM8:
+       case MESA_FORMAT_I_UNORM8:
+       case MESA_FORMAT_B2G3R3_UNORM:
                return NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8;
 
-       case MESA_FORMAT_RGB565:
-       case MESA_FORMAT_RGB565_REV:
-       case MESA_FORMAT_ARGB4444:
-       case MESA_FORMAT_ARGB4444_REV:
-       case MESA_FORMAT_ARGB1555:
-       case MESA_FORMAT_RGBA5551:
-       case MESA_FORMAT_ARGB1555_REV:
-       case MESA_FORMAT_AL88:
-       case MESA_FORMAT_AL88_REV:
+       case MESA_FORMAT_B5G6R5_UNORM:
+       case MESA_FORMAT_R5G6B5_UNORM:
+       case MESA_FORMAT_B4G4R4A4_UNORM:
+       case MESA_FORMAT_A4R4G4B4_UNORM:
+       case MESA_FORMAT_B5G5R5A1_UNORM:
+       case MESA_FORMAT_A1B5G5R5_UNORM:
+       case MESA_FORMAT_A1R5G5B5_UNORM:
+       case MESA_FORMAT_L8A8_UNORM:
+       case MESA_FORMAT_A8L8_UNORM:
        case MESA_FORMAT_YCBCR:
        case MESA_FORMAT_YCBCR_REV:
-       case MESA_FORMAT_Z16:
+       case MESA_FORMAT_Z_UNORM16:
                return NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5;
 
-       case MESA_FORMAT_RGBA8888:
-       case MESA_FORMAT_RGBA8888_REV:
-       case MESA_FORMAT_XRGB8888:
-       case MESA_FORMAT_ARGB8888:
-       case MESA_FORMAT_ARGB8888_REV:
-       case MESA_FORMAT_S8_Z24:
-       case MESA_FORMAT_Z24_S8:
-       case MESA_FORMAT_Z32:
+       case MESA_FORMAT_A8B8G8R8_UNORM:
+       case MESA_FORMAT_R8G8B8A8_UNORM:
+       case MESA_FORMAT_B8G8R8X8_UNORM:
+       case MESA_FORMAT_B8G8R8A8_UNORM:
+       case MESA_FORMAT_A8R8G8B8_UNORM:
+       case MESA_FORMAT_Z24_UNORM_S8_UINT:
+       case MESA_FORMAT_S8_UINT_Z24_UNORM:
+       case MESA_FORMAT_Z_UNORM32:
                return NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8;
 
        default:
@@ -73,37 +73,37 @@ swzsurf_format(gl_format format)
 }
 
 static inline int
-surf2d_format(gl_format format)
+surf2d_format(mesa_format format)
 {
        switch (format) {
-       case MESA_FORMAT_A8:
-       case MESA_FORMAT_L8:
-       case MESA_FORMAT_I8:
-       case MESA_FORMAT_RGB332:
+       case MESA_FORMAT_A_UNORM8:
+       case MESA_FORMAT_L_UNORM8:
+       case MESA_FORMAT_I_UNORM8:
+       case MESA_FORMAT_B2G3R3_UNORM:
                return NV04_CONTEXT_SURFACES_2D_FORMAT_Y8;
 
-       case MESA_FORMAT_RGB565:
-       case MESA_FORMAT_RGB565_REV:
-       case MESA_FORMAT_ARGB4444:
-       case MESA_FORMAT_ARGB4444_REV:
-       case MESA_FORMAT_ARGB1555:
-       case MESA_FORMAT_RGBA5551:
-       case MESA_FORMAT_ARGB1555_REV:
-       case MESA_FORMAT_AL88:
-       case MESA_FORMAT_AL88_REV:
+       case MESA_FORMAT_B5G6R5_UNORM:
+       case MESA_FORMAT_R5G6B5_UNORM:
+       case MESA_FORMAT_B4G4R4A4_UNORM:
+       case MESA_FORMAT_A4R4G4B4_UNORM:
+       case MESA_FORMAT_B5G5R5A1_UNORM:
+       case MESA_FORMAT_A1B5G5R5_UNORM:
+       case MESA_FORMAT_A1R5G5B5_UNORM:
+       case MESA_FORMAT_L8A8_UNORM:
+       case MESA_FORMAT_A8L8_UNORM:
        case MESA_FORMAT_YCBCR:
        case MESA_FORMAT_YCBCR_REV:
-       case MESA_FORMAT_Z16:
+       case MESA_FORMAT_Z_UNORM16:
                return NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5;
 
-       case MESA_FORMAT_RGBA8888:
-       case MESA_FORMAT_RGBA8888_REV:
-       case MESA_FORMAT_XRGB8888:
-       case MESA_FORMAT_ARGB8888:
-       case MESA_FORMAT_ARGB8888_REV:
-       case MESA_FORMAT_S8_Z24:
-       case MESA_FORMAT_Z24_S8:
-       case MESA_FORMAT_Z32:
+       case MESA_FORMAT_A8B8G8R8_UNORM:
+       case MESA_FORMAT_R8G8B8A8_UNORM:
+       case MESA_FORMAT_B8G8R8X8_UNORM:
+       case MESA_FORMAT_B8G8R8A8_UNORM:
+       case MESA_FORMAT_A8R8G8B8_UNORM:
+       case MESA_FORMAT_Z24_UNORM_S8_UINT:
+       case MESA_FORMAT_S8_UINT_Z24_UNORM:
+       case MESA_FORMAT_Z_UNORM32:
                return NV04_CONTEXT_SURFACES_2D_FORMAT_Y32;
 
        default:
@@ -112,37 +112,37 @@ surf2d_format(gl_format format)
 }
 
 static inline int
-rect_format(gl_format format)
+rect_format(mesa_format format)
 {
        switch (format) {
-       case MESA_FORMAT_A8:
-       case MESA_FORMAT_L8:
-       case MESA_FORMAT_I8:
-       case MESA_FORMAT_RGB332:
+       case MESA_FORMAT_A_UNORM8:
+       case MESA_FORMAT_L_UNORM8:
+       case MESA_FORMAT_I_UNORM8:
+       case MESA_FORMAT_B2G3R3_UNORM:
                return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8;
 
-       case MESA_FORMAT_RGB565:
-       case MESA_FORMAT_RGB565_REV:
-       case MESA_FORMAT_ARGB4444:
-       case MESA_FORMAT_ARGB4444_REV:
-       case MESA_FORMAT_ARGB1555:
-       case MESA_FORMAT_RGBA5551:
-       case MESA_FORMAT_ARGB1555_REV:
-       case MESA_FORMAT_AL88:
-       case MESA_FORMAT_AL88_REV:
+       case MESA_FORMAT_B5G6R5_UNORM:
+       case MESA_FORMAT_R5G6B5_UNORM:
+       case MESA_FORMAT_B4G4R4A4_UNORM:
+       case MESA_FORMAT_A4R4G4B4_UNORM:
+       case MESA_FORMAT_B5G5R5A1_UNORM:
+       case MESA_FORMAT_A1B5G5R5_UNORM:
+       case MESA_FORMAT_A1R5G5B5_UNORM:
+       case MESA_FORMAT_L8A8_UNORM:
+       case MESA_FORMAT_A8L8_UNORM:
        case MESA_FORMAT_YCBCR:
        case MESA_FORMAT_YCBCR_REV:
-       case MESA_FORMAT_Z16:
+       case MESA_FORMAT_Z_UNORM16:
                return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5;
 
-       case MESA_FORMAT_RGBA8888:
-       case MESA_FORMAT_RGBA8888_REV:
-       case MESA_FORMAT_XRGB8888:
-       case MESA_FORMAT_ARGB8888:
-       case MESA_FORMAT_ARGB8888_REV:
-       case MESA_FORMAT_S8_Z24:
-       case MESA_FORMAT_Z24_S8:
-       case MESA_FORMAT_Z32:
+       case MESA_FORMAT_A8B8G8R8_UNORM:
+       case MESA_FORMAT_R8G8B8A8_UNORM:
+       case MESA_FORMAT_B8G8R8X8_UNORM:
+       case MESA_FORMAT_B8G8R8A8_UNORM:
+       case MESA_FORMAT_A8R8G8B8_UNORM:
+       case MESA_FORMAT_Z24_UNORM_S8_UINT:
+       case MESA_FORMAT_S8_UINT_Z24_UNORM:
+       case MESA_FORMAT_Z_UNORM32:
                return NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8;
 
        default:
@@ -151,37 +151,37 @@ rect_format(gl_format format)
 }
 
 static inline int
-sifm_format(gl_format format)
+sifm_format(mesa_format format)
 {
        switch (format) {
-       case MESA_FORMAT_A8:
-       case MESA_FORMAT_L8:
-       case MESA_FORMAT_I8:
-       case MESA_FORMAT_RGB332:
+       case MESA_FORMAT_A_UNORM8:
+       case MESA_FORMAT_L_UNORM8:
+       case MESA_FORMAT_I_UNORM8:
+       case MESA_FORMAT_B2G3R3_UNORM:
                return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8;
 
-       case MESA_FORMAT_RGB565:
-       case MESA_FORMAT_RGB565_REV:
-       case MESA_FORMAT_ARGB4444:
-       case MESA_FORMAT_ARGB4444_REV:
-       case MESA_FORMAT_ARGB1555:
-       case MESA_FORMAT_RGBA5551:
-       case MESA_FORMAT_ARGB1555_REV:
-       case MESA_FORMAT_AL88:
-       case MESA_FORMAT_AL88_REV:
+       case MESA_FORMAT_B5G6R5_UNORM:
+       case MESA_FORMAT_R5G6B5_UNORM:
+       case MESA_FORMAT_B4G4R4A4_UNORM:
+       case MESA_FORMAT_A4R4G4B4_UNORM:
+       case MESA_FORMAT_B5G5R5A1_UNORM:
+       case MESA_FORMAT_A1B5G5R5_UNORM:
+       case MESA_FORMAT_A1R5G5B5_UNORM:
+       case MESA_FORMAT_L8A8_UNORM:
+       case MESA_FORMAT_A8L8_UNORM:
        case MESA_FORMAT_YCBCR:
        case MESA_FORMAT_YCBCR_REV:
-       case MESA_FORMAT_Z16:
+       case MESA_FORMAT_Z_UNORM16:
                return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5;
 
-       case MESA_FORMAT_RGBA8888:
-       case MESA_FORMAT_RGBA8888_REV:
-       case MESA_FORMAT_XRGB8888:
-       case MESA_FORMAT_ARGB8888:
-       case MESA_FORMAT_ARGB8888_REV:
-       case MESA_FORMAT_S8_Z24:
-       case MESA_FORMAT_Z24_S8:
-       case MESA_FORMAT_Z32:
+       case MESA_FORMAT_A8B8G8R8_UNORM:
+       case MESA_FORMAT_R8G8B8A8_UNORM:
+       case MESA_FORMAT_B8G8R8X8_UNORM:
+       case MESA_FORMAT_B8G8R8A8_UNORM:
+       case MESA_FORMAT_A8R8G8B8_UNORM:
+       case MESA_FORMAT_Z24_UNORM_S8_UINT:
+       case MESA_FORMAT_S8_UINT_Z24_UNORM:
+       case MESA_FORMAT_Z_UNORM32:
                return NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8;
 
        default: