<commit_before>// This file will not pull in the OpenGL headers but will still let you
// access information about the features of the current GPU, for auto-config
// and similar purposes.

#pragma once

#include "base/NativeApp.h"

enum {
	GPU_VENDOR_NVIDIA = 1,
	GPU_VENDOR_AMD = 2,
	GPU_VENDOR_INTEL = 3,
	GPU_VENDOR_ARM = 4,  // Mali
	GPU_VENDOR_POWERVR = 5,
	GPU_VENDOR_ADRENO = 6,
	GPU_VENDOR_BROADCOM = 7,
	GPU_VENDOR_UNKNOWN = 0,
};

enum {
	BUG_FBO_UNUSABLE=1
};

// Extensions to look at using:
// GL_NV_map_buffer_range (same as GL_ARB_map_buffer_range ?)

// WARNING: This gets memset-d - so no strings please
// TODO: Rename this GLFeatures or something.
struct GLExtensions {
	int ver[3];
	int gpuVendor;

	bool GLES3;  // true if the full OpenGL ES 3.0 is supported
	bool OES_depth24;
	bool OES_packed_depth_stencil;
	bool OES_depth_texture;
	bool EXT_discard_framebuffer;
	bool FBO_ARB;
	bool FBO_EXT;
	bool PBO_ARB;
	bool EXT_swap_control_tear;
	bool OES_mapbuffer;
	bool OES_vertex_array_object;
	bool EXT_shader_framebuffer_fetch;
	bool EXT_blend_minmax;
	bool ATIClampBug;
	bool NV_draw_texture;
	bool NV_copy_image;
	bool EXT_unpack_subimage;  // always supported on desktop and ES3
	bool ARB_blend_func_extended;  // dual source blending

	// EGL extensions

	bool EGL_NV_system_time;
	bool EGL_NV_coverage_sample;

	// Bugs
	int bugs;
<commit_msg>bool ARB_shader_image_load_store<commit_after>// This file will not pull in the OpenGL headers but will still let you
// access information about the features of the current GPU, for auto-config
// and similar purposes.

#pragma once

#include "base/NativeApp.h"

enum {
	GPU_VENDOR_NVIDIA = 1,
	GPU_VENDOR_AMD = 2,
	GPU_VENDOR_INTEL = 3,
	GPU_VENDOR_ARM = 4,  // Mali
	GPU_VENDOR_POWERVR = 5,
	GPU_VENDOR_ADRENO = 6,
	GPU_VENDOR_BROADCOM = 7,
	GPU_VENDOR_UNKNOWN = 0,
};

enum {
	BUG_FBO_UNUSABLE=1
};

// Extensions to look at using:
// GL_NV_map_buffer_range (same as GL_ARB_map_buffer_range ?)

// WARNING: This gets memset-d - so no strings please
// TODO: Rename this GLFeatures or something.
struct GLExtensions {
	int ver[3];
	int gpuVendor;

	bool GLES3;  // true if the full OpenGL ES 3.0 is supported
	bool OES_depth24;
	bool OES_packed_depth_stencil;
	bool OES_depth_texture;
	bool EXT_discard_framebuffer;
	bool FBO_ARB;
	bool FBO_EXT;
	bool PBO_ARB;
	bool EXT_swap_control_tear;
	bool OES_mapbuffer;
	bool OES_vertex_array_object;
	bool EXT_shader_framebuffer_fetch;
	bool EXT_blend_minmax;
	bool ATIClampBug;
	bool NV_draw_texture;
	bool NV_copy_image;
	bool EXT_unpack_subimage;  // always supported on desktop and ES3
	bool ARB_blend_func_extended;  // dual source blending
	bool ARB_shader_image_load_store;
	// EGL extensions

	bool EGL_NV_system_time;
	bool EGL_NV_coverage_sample;

	// Bugs
	int bugs;

{'fraction_non_alphanumeric': 0.06981740064446831, 'fraction_numerical': 0.011457214464733263, 'mean_word_length': 4.45703125, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1741527', 'n_tokens_mistral': 1104, 'n_tokens_neox': 1116, 'n_words': 293}