util/hash_table: update users to use new optimal integer hash functions
[mesa.git] / src / gallium / drivers / vc4 / vc4_screen.c
index 14ee6cf09e5ec4932a8f9661a23e9d1c7141b193..2be0b6c3fbed6ffe8dea11c4803c9acd9fe05137 100644 (file)
 #include "util/u_cpu_detect.h"
 #include "util/u_debug.h"
 #include "util/u_memory.h"
-#include "util/u_format.h"
+#include "util/format/u_format.h"
 #include "util/u_hash_table.h"
 #include "util/u_screen.h"
+#include "util/u_transfer_helper.h"
 #include "util/ralloc.h"
 
 #include <xf86drm.h>
-#include "drm_fourcc.h"
-#include "vc4_drm.h"
+#include "drm-uapi/drm_fourcc.h"
+#include "drm-uapi/vc4_drm.h"
 #include "vc4_screen.h"
 #include "vc4_context.h"
 #include "vc4_resource.h"
@@ -110,6 +111,8 @@ vc4_screen_destroy(struct pipe_screen *pscreen)
         vc4_simulator_destroy(screen);
 #endif
 
+        u_transfer_helper_destroy(pscreen->transfer_helper);
+
         close(screen->fd);
         ralloc_free(pscreen);
 }
@@ -161,6 +164,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
 
         case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
         case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
+        case PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL:
                 return 1;
 
         case PIPE_CAP_MIXED_FRAMEBUFFER_SIZES:
@@ -168,13 +172,17 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
                 return 1;
 
                 /* Texturing. */
-        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
+        case PIPE_CAP_MAX_TEXTURE_2D_SIZE:
+                return 2048;
         case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
                 return VC4_MAX_MIP_LEVELS;
         case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
                 /* Note: Not supported in hardware, just faking it. */
                 return 5;
 
+        case PIPE_CAP_MAX_VARYINGS:
+                return 8;
+
         case PIPE_CAP_VENDOR_ID:
                 return 0x14E4;
         case PIPE_CAP_ACCELERATED:
@@ -291,8 +299,6 @@ vc4_screen_get_shader_param(struct pipe_screen *pscreen,
         case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS:
         case PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS:
                 return 0;
-        case PIPE_SHADER_CAP_SCALAR_ISA:
-                return 1;
         default:
                 fprintf(stderr, "unknown shader param %d\n", param);
                 return 0;
@@ -300,7 +306,7 @@ vc4_screen_get_shader_param(struct pipe_screen *pscreen,
         return 0;
 }
 
-static boolean
+static bool
 vc4_screen_is_format_supported(struct pipe_screen *pscreen,
                                enum pipe_format format,
                                enum pipe_texture_target target,
@@ -314,10 +320,10 @@ vc4_screen_is_format_supported(struct pipe_screen *pscreen,
                 return false;
 
         if (sample_count > 1 && sample_count != VC4_MAX_SAMPLES)
-                return FALSE;
+                return false;
 
         if (target >= PIPE_MAX_TEXTURE_TYPES) {
-                return FALSE;
+                return false;
         }
 
         if (usage & PIPE_BIND_VERTEX_BUFFER) {
@@ -368,34 +374,34 @@ vc4_screen_is_format_supported(struct pipe_screen *pscreen,
                 case PIPE_FORMAT_R8_SSCALED:
                         break;
                 default:
-                        return FALSE;
+                        return false;
                 }
         }
 
         if ((usage & PIPE_BIND_RENDER_TARGET) &&
             !vc4_rt_format_supported(format)) {
-                return FALSE;
+                return false;
         }
 
         if ((usage & PIPE_BIND_SAMPLER_VIEW) &&
             (!vc4_tex_format_supported(format) ||
              (format == PIPE_FORMAT_ETC1_RGB8 && !screen->has_etc1))) {
-                return FALSE;
+                return false;
         }
 
         if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
             format != PIPE_FORMAT_S8_UINT_Z24_UNORM &&
             format != PIPE_FORMAT_X8Z24_UNORM) {
-                return FALSE;
+                return false;
         }
 
         if ((usage & PIPE_BIND_INDEX_BUFFER) &&
             format != PIPE_FORMAT_I8_UINT &&
             format != PIPE_FORMAT_I16_UINT) {
-                return FALSE;
+                return false;
         }
 
-        return TRUE;
+        return true;
 }
 
 static void