154f8711b6
New features in mesa 20: OpenGL 4.6 on radeonsi. GL_ARB_gl_spirv on radeonsi. GL_ARB_spirv_extensions on radeonsi. GL_EXT_direct_state_access for compatibility profile. VK_AMD_device_coherent_memory on RADV. VK_AMD_mixed_attachment_samples on RADV. VK_AMD_shader_explicit_vertex_parameter on RADV. VK_AMD_shader_image_load_store_lod on RADV. VK_AMD_shader_fragment_mask on RADV. VK_EXT_subgroup_size_control on RADV/LLVM. VK_KHR_separate_depth_stencil_layouts on Intel, RADV. VK_KHR_shader_subgroup_extended_types on RADV. VK_KHR_swapchain_mutable_format on RADV. VK_KHR_shader_float_controls on RADV/ACO. GFX6 (Southern Islands) and GFX7 (Sea Islands) support on RADV/ACO. Wave32 support for GFX10 (Navi) on RADV/ACO. Compilation of Geometry Shaders on RADV/ACO. Vulkan 1.2 on Intel, RADV. GL_INTEL_shader_integer_functions2 and VK_INTEL_shader_integer_functions2 on Intel. As usual many bugfixes also.
53 lines
1.7 KiB
C
53 lines
1.7 KiB
C
$NetBSD: patch-src_mapi_entry__x86__tls.h,v 1.6 2020/03/08 10:35:03 tnn Exp $
|
|
|
|
NetBSD only supports zero-initialized initial-exec tls variables in conjuction
|
|
with dlopen(3) at the moment.
|
|
|
|
--- src/mapi/entry_x86_tls.h.orig 2020-03-05 21:34:32.000000000 +0000
|
|
+++ src/mapi/entry_x86_tls.h
|
|
@@ -45,6 +45,25 @@ __asm__("x86_current_tls:\n\t"
|
|
"movl " ENTRY_CURRENT_TABLE "@GOTNTPOFF(%eax), %eax\n\t"
|
|
"ret");
|
|
|
|
+#if defined(__NetBSD__)
|
|
+__asm__("x86_current_table_helper:\n\t"
|
|
+ "call 1f\n\t"
|
|
+ "1:\n\t"
|
|
+ "popl %eax\n\t"
|
|
+ "addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %eax\n\t"
|
|
+ "movl " ENTRY_CURRENT_TABLE "@GOTNTPOFF(%eax), %eax\n\t"
|
|
+ "movl %gs:(%eax), %eax\n\t"
|
|
+ "testl %eax, %eax\n\t"
|
|
+ "je 2f\n\t"
|
|
+ "ret\n\t"
|
|
+ "2:\n\t"
|
|
+ "call 3f\n\t"
|
|
+ "3:\n\t"
|
|
+ "popl %eax\n\t"
|
|
+ "addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %eax\n\t"
|
|
+ "jmp *" ENTRY_CURRENT_TABLE_GET "@GOT(%eax)");
|
|
+#endif
|
|
+
|
|
#ifndef GLX_X86_READONLY_TEXT
|
|
__asm__(".section wtext, \"awx\", @progbits");
|
|
#endif /* GLX_X86_READONLY_TEXT */
|
|
@@ -58,6 +77,11 @@ __asm__(".balign 16\n"
|
|
".balign 16\n" \
|
|
func ":"
|
|
|
|
+#if defined(__NetBSD__)
|
|
+#define STUB_ASM_CODE(slot) \
|
|
+ "call x86_current_table_helper\n\t" \
|
|
+ "jmp *(4 * " slot ")(%eax)"
|
|
+#else
|
|
#define STUB_ASM_CODE(slot) \
|
|
"call 1f\n" \
|
|
"1:\n\t" \
|
|
@@ -66,6 +90,7 @@ __asm__(".balign 16\n"
|
|
"movl " ENTRY_CURRENT_TABLE "@GOTNTPOFF(%eax), %eax\n\t" \
|
|
"movl %gs:(%eax), %eax\n\t" \
|
|
"jmp *(4 * " slot ")(%eax)"
|
|
+#endif
|
|
|
|
#define MAPI_TMP_STUB_ASM_GCC
|
|
#include "mapi_tmp.h"
|