mirror of https://github.com/PCSX2/pcsx2.git
gsdx ogl:
* gui refresh + Use some tab to reduce heigth for small screen + Add logz option + remove broken/experimental keyword. GSdx ogl is not too bad ;) * autodetect GL_NV_depth_buffer_float Linux tester you are welcome! git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5862 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
6f3326a9a4
commit
c0558c00e7
|
@ -142,6 +142,8 @@ namespace GLLoader {
|
||||||
bool found_GL_ARB_shader_image_load_store = false;
|
bool found_GL_ARB_shader_image_load_store = false;
|
||||||
bool found_GL_ARB_shader_subroutine = false;
|
bool found_GL_ARB_shader_subroutine = false;
|
||||||
bool found_GL_ARB_bindless_texture = false; // GL5 GPU?
|
bool found_GL_ARB_bindless_texture = false; // GL5 GPU?
|
||||||
|
// Surely recent hardware
|
||||||
|
bool found_GL_NV_depth_buffer_float = false;
|
||||||
|
|
||||||
// Mandatory for FULL GL (but optional for GLES)
|
// Mandatory for FULL GL (but optional for GLES)
|
||||||
bool found_GL_ARB_multi_bind = false; // Not yet. Wait Mesa & AMD drivers. Note might be deprecated by bindless_texture
|
bool found_GL_ARB_multi_bind = false; // Not yet. Wait Mesa & AMD drivers. Note might be deprecated by bindless_texture
|
||||||
|
@ -155,6 +157,8 @@ namespace GLLoader {
|
||||||
if (!found) {
|
if (!found) {
|
||||||
fprintf(stderr, "INFO: %s is not supported\n", name.c_str());
|
fprintf(stderr, "INFO: %s is not supported\n", name.c_str());
|
||||||
if(mandatory) return false;
|
if(mandatory) return false;
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "INFO: %s is supported\n", name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string opt("override_");
|
std::string opt("override_");
|
||||||
|
@ -238,6 +242,7 @@ namespace GLLoader {
|
||||||
if (ext.compare("GL_ARB_copy_image") == 0) found_GL_ARB_copy_image = true;
|
if (ext.compare("GL_ARB_copy_image") == 0) found_GL_ARB_copy_image = true;
|
||||||
if (ext.compare("GL_ARB_gpu_shader5") == 0) found_GL_ARB_gpu_shader5 = true;
|
if (ext.compare("GL_ARB_gpu_shader5") == 0) found_GL_ARB_gpu_shader5 = true;
|
||||||
if (ext.compare("GL_ARB_shader_image_load_store") == 0) found_GL_ARB_shader_image_load_store = true;
|
if (ext.compare("GL_ARB_shader_image_load_store") == 0) found_GL_ARB_shader_image_load_store = true;
|
||||||
|
if (ext.compare("GL_NV_depth_buffer_float") == 0) found_GL_NV_depth_buffer_float = true;
|
||||||
#if 0
|
#if 0
|
||||||
// Erratum: on nvidia implementation, gain is very nice : 42.5 fps => 46.5 fps
|
// Erratum: on nvidia implementation, gain is very nice : 42.5 fps => 46.5 fps
|
||||||
//
|
//
|
||||||
|
@ -287,6 +292,8 @@ namespace GLLoader {
|
||||||
status &= status_and_override(found_GL_ARB_multi_bind,"GL_ARB_multi_bind");
|
status &= status_and_override(found_GL_ARB_multi_bind,"GL_ARB_multi_bind");
|
||||||
status &= status_and_override(found_GL_ARB_bindless_texture,"GL_ARB_bindless_texture");
|
status &= status_and_override(found_GL_ARB_bindless_texture,"GL_ARB_bindless_texture");
|
||||||
|
|
||||||
|
status &= status_and_override(found_GL_NV_depth_buffer_float,"GL_NV_depth_buffer_float");
|
||||||
|
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -283,4 +283,5 @@ namespace GLLoader {
|
||||||
extern bool found_GL_ARB_shader_subroutine;
|
extern bool found_GL_ARB_shader_subroutine;
|
||||||
extern bool found_GL_ARB_bindless_texture;
|
extern bool found_GL_ARB_bindless_texture;
|
||||||
extern bool found_GL_ARB_explicit_uniform_location;
|
extern bool found_GL_ARB_explicit_uniform_location;
|
||||||
|
extern bool found_GL_NV_depth_buffer_float;
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,7 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Various object
|
// Various object
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
m_shader = new GSShaderOGL(!!theApp.GetConfig("debug_ogl_shader", 1), !!theApp.GetConfig("GL_NV_Depth", 0));
|
m_shader = new GSShaderOGL(!!theApp.GetConfig("debug_ogl_shader", 1));
|
||||||
|
|
||||||
gl_GenFramebuffers(1, &m_fbo);
|
gl_GenFramebuffers(1, &m_fbo);
|
||||||
gl_GenFramebuffers(1, &m_fbo_read);
|
gl_GenFramebuffers(1, &m_fbo_read);
|
||||||
|
|
|
@ -75,10 +75,6 @@ GtkWidget* CreateRenderComboBox()
|
||||||
label += " (debug only)";
|
label += " (debug only)";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// opengl harware is not yet finished
|
|
||||||
case 10:
|
|
||||||
label += " (experimental)";
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -232,17 +228,19 @@ GtkWidget* CreateGlComboBox(const char* option)
|
||||||
bool RunLinuxDialog()
|
bool RunLinuxDialog()
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkWidget *main_box, *res_box, *hw_box, *sw_box, *shader_box;
|
GtkWidget *main_box, *central_box, *advance_box, *res_box, *hw_box, *sw_box, *shader_box;
|
||||||
GtkWidget *native_box, *fsaa_box, *resxy_box, *renderer_box, *interlace_box, *threads_box, *filter_box;
|
GtkWidget *native_box, *fsaa_box, *resxy_box, *renderer_box, *interlace_box, *threads_box, *filter_box;
|
||||||
GtkWidget *hw_table, *shader_table, *res_frame, *hw_frame, *sw_frame, *shader_frame;
|
GtkWidget *hw_table, *shader_table, *res_frame, *hw_frame, *sw_frame, *shader_frame;
|
||||||
GtkWidget *interlace_combo_box, *threads_spin;
|
GtkWidget *interlace_combo_box, *threads_spin;
|
||||||
GtkWidget *interlace_label, *threads_label, *native_label, *fsaa_label, *rexy_label, *render_label, *filter_label;
|
GtkWidget *interlace_label, *threads_label, *native_label, *fsaa_label, *rexy_label, *render_label, *filter_label;
|
||||||
|
|
||||||
GtkWidget *hack_table, *hack_skipdraw_label, *hack_box, *hack_frame;
|
GtkWidget *hack_table, *hack_skipdraw_label, *hack_box, *hack_frame;
|
||||||
GtkWidget *hack_alpha_check, *hack_offset_check, *hack_skipdraw_spin, *hack_msaa_check, *hack_sprite_check, * hack_wild_check, *hack_enble_check;
|
GtkWidget *hack_alpha_check, *hack_offset_check, *hack_skipdraw_spin, *hack_msaa_check, *hack_sprite_check, * hack_wild_check, *hack_enble_check, *hack_logz_check;
|
||||||
GtkWidget *hack_tco_label, *hack_tco_entry;
|
GtkWidget *hack_tco_label, *hack_tco_entry;
|
||||||
GtkWidget *gl_box, *gl_frame, *gl_table;
|
GtkWidget *gl_box, *gl_frame, *gl_table;
|
||||||
|
|
||||||
|
GtkWidget *notebook, *page_label[2];
|
||||||
|
|
||||||
int return_value;
|
int return_value;
|
||||||
|
|
||||||
GdkPixbuf* logo_pixmap;
|
GdkPixbuf* logo_pixmap;
|
||||||
|
@ -261,6 +259,8 @@ bool RunLinuxDialog()
|
||||||
|
|
||||||
// The main area for the whole dialog box.
|
// The main area for the whole dialog box.
|
||||||
main_box = gtk_vbox_new(false, 5);
|
main_box = gtk_vbox_new(false, 5);
|
||||||
|
central_box = gtk_vbox_new(false, 5);
|
||||||
|
advance_box = gtk_vbox_new(false, 5);
|
||||||
|
|
||||||
// The Internal resolution frame and container.
|
// The Internal resolution frame and container.
|
||||||
res_box = gtk_vbox_new(false, 5);
|
res_box = gtk_vbox_new(false, 5);
|
||||||
|
@ -335,7 +335,7 @@ bool RunLinuxDialog()
|
||||||
gtk_box_pack_start(GTK_BOX(native_box), native_label, false, false, 5);
|
gtk_box_pack_start(GTK_BOX(native_box), native_label, false, false, 5);
|
||||||
gtk_box_pack_start(GTK_BOX(native_box), native_res_check, false, false, 5);
|
gtk_box_pack_start(GTK_BOX(native_box), native_res_check, false, false, 5);
|
||||||
|
|
||||||
fsaa_label = gtk_label_new("Or Use Scaling (broken):");
|
fsaa_label = gtk_label_new("Or Use Scaling:");
|
||||||
fsaa_combo_box = CreateMsaaComboBox();
|
fsaa_combo_box = CreateMsaaComboBox();
|
||||||
fsaa_box = gtk_hbox_new(false, 5);
|
fsaa_box = gtk_hbox_new(false, 5);
|
||||||
gtk_box_pack_start(GTK_BOX(fsaa_box), fsaa_label, false, false, 5);
|
gtk_box_pack_start(GTK_BOX(fsaa_box), fsaa_label, false, false, 5);
|
||||||
|
@ -360,8 +360,9 @@ bool RunLinuxDialog()
|
||||||
hack_wild_check = gtk_check_button_new_with_label("Wild arm Hack");
|
hack_wild_check = gtk_check_button_new_with_label("Wild arm Hack");
|
||||||
hack_sprite_check = gtk_check_button_new_with_label("Sprite Hack");
|
hack_sprite_check = gtk_check_button_new_with_label("Sprite Hack");
|
||||||
hack_msaa_check = gtk_check_button_new_with_label("Msaa Hack");
|
hack_msaa_check = gtk_check_button_new_with_label("Msaa Hack");
|
||||||
hack_tco_label = gtk_label_new("Texture offset: 0x");
|
hack_tco_label = gtk_label_new("Texture Offset: 0x");
|
||||||
hack_tco_entry = gtk_entry_new();
|
hack_tco_entry = gtk_entry_new();
|
||||||
|
hack_logz_check = gtk_check_button_new_with_label("Log Depth Hack");
|
||||||
|
|
||||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(hack_skipdraw_spin), theApp.GetConfig("UserHacks_SkipDraw", 0));
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(hack_skipdraw_spin), theApp.GetConfig("UserHacks_SkipDraw", 0));
|
||||||
set_hex_entry(hack_tco_entry, theApp.GetConfig("UserHacks_TCOffset", 0));
|
set_hex_entry(hack_tco_entry, theApp.GetConfig("UserHacks_TCOffset", 0));
|
||||||
|
@ -371,12 +372,13 @@ bool RunLinuxDialog()
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_offset_check, 1, 2, 0, 1);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_offset_check, 1, 2, 0, 1);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_sprite_check, 0, 1, 1, 2);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_sprite_check, 0, 1, 1, 2);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_wild_check, 1, 2, 1, 2);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_wild_check, 1, 2, 1, 2);
|
||||||
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_logz_check, 0, 1, 2, 3);
|
||||||
// Note: MSAA is not implemented yet. I disable it to make the table square
|
// Note: MSAA is not implemented yet. I disable it to make the table square
|
||||||
//gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_msaa_check, 2, 3, 1, 2);
|
//gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_msaa_check, 2, 3, 1, 2);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_skipdraw_label, 0, 1, 2, 3);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_skipdraw_label, 0, 1, 3, 4);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_skipdraw_spin, 1, 2, 2, 3);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_skipdraw_spin, 1, 2, 3, 4);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_tco_label, 0, 1, 3, 4);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_tco_label, 0, 1, 4, 5);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_tco_entry, 1, 2, 3, 4);
|
gtk_table_attach_defaults(GTK_TABLE(hack_table), hack_tco_entry, 1, 2, 4, 5);
|
||||||
|
|
||||||
// Create our checkboxes.
|
// Create our checkboxes.
|
||||||
shadeboost_check = gtk_check_button_new_with_label("Shade boost");
|
shadeboost_check = gtk_check_button_new_with_label("Shade boost");
|
||||||
|
@ -400,6 +402,7 @@ bool RunLinuxDialog()
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_msaa_check), theApp.GetConfig("UserHacks_MSAA", 0));
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_msaa_check), theApp.GetConfig("UserHacks_MSAA", 0));
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_wild_check), theApp.GetConfig("UserHacks_WildHack", 0));
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_wild_check), theApp.GetConfig("UserHacks_WildHack", 0));
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_sprite_check), theApp.GetConfig("UserHacks_SpriteHack", 0));
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_sprite_check), theApp.GetConfig("UserHacks_SpriteHack", 0));
|
||||||
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_logz_check), theApp.GetConfig("logz", 1));
|
||||||
|
|
||||||
// Shadeboost scale
|
// Shadeboost scale
|
||||||
sb_brightness = gtk_hscale_new_with_range(0, 200, 10);
|
sb_brightness = gtk_hscale_new_with_range(0, 200, 10);
|
||||||
|
@ -466,6 +469,8 @@ bool RunLinuxDialog()
|
||||||
GtkWidget* gl_gs_combo = CreateGlComboBox("override_geometry_shader");
|
GtkWidget* gl_gs_combo = CreateGlComboBox("override_geometry_shader");
|
||||||
GtkWidget* gl_ils_label = gtk_label_new("Image Load Store:");
|
GtkWidget* gl_ils_label = gtk_label_new("Image Load Store:");
|
||||||
GtkWidget* gl_ils_combo = CreateGlComboBox("override_GL_ARB_shader_image_load_store");
|
GtkWidget* gl_ils_combo = CreateGlComboBox("override_GL_ARB_shader_image_load_store");
|
||||||
|
GtkWidget* gl_ndbf_label = gtk_label_new("NV Float Depth Buffer:");
|
||||||
|
GtkWidget* gl_ndbf_combo = CreateGlComboBox("override_GL_NV_depth_buffer_float");
|
||||||
|
|
||||||
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_gs_label, 0, 1, 0, 1);
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_gs_label, 0, 1, 0, 1);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_gs_combo, 1, 2, 0, 1);
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_gs_combo, 1, 2, 0, 1);
|
||||||
|
@ -479,6 +484,8 @@ bool RunLinuxDialog()
|
||||||
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ss_combo, 1, 2, 4, 5);
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ss_combo, 1, 2, 4, 5);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ils_label, 0, 1, 5, 6);
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ils_label, 0, 1, 5, 6);
|
||||||
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ils_combo, 1, 2, 5, 6);
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ils_combo, 1, 2, 5, 6);
|
||||||
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ndbf_label, 0, 1, 6, 7);
|
||||||
|
gtk_table_attach_defaults(GTK_TABLE(gl_table), gl_ndbf_combo, 1, 2, 6, 7);
|
||||||
// those one are properly detected so no need a gui
|
// those one are properly detected so no need a gui
|
||||||
#if 0
|
#if 0
|
||||||
override_GL_ARB_copy_image = -1
|
override_GL_ARB_copy_image = -1
|
||||||
|
@ -487,24 +494,35 @@ override_GL_ARB_gpu_shader5 = -1
|
||||||
override_GL_ARB_shading_language_420pack = -1
|
override_GL_ARB_shading_language_420pack = -1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Handle some nice tab
|
||||||
|
notebook = gtk_notebook_new();
|
||||||
|
page_label[0] = gtk_label_new("Global Setting");
|
||||||
|
page_label[1] = gtk_label_new("Advance Setting");
|
||||||
|
|
||||||
|
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), central_box, page_label[0]);
|
||||||
|
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), advance_box, page_label[1]);
|
||||||
|
|
||||||
// Put everything in the big box.
|
// Put everything in the big box.
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), renderer_box);
|
gtk_container_add(GTK_CONTAINER(main_box), renderer_box);
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), interlace_box);
|
gtk_container_add(GTK_CONTAINER(main_box), interlace_box);
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), res_frame);
|
gtk_container_add(GTK_CONTAINER(main_box), notebook);
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), shader_frame);
|
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), hw_frame);
|
gtk_container_add(GTK_CONTAINER(central_box), res_frame);
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), sw_frame);
|
gtk_container_add(GTK_CONTAINER(central_box), shader_frame);
|
||||||
|
gtk_container_add(GTK_CONTAINER(central_box), hw_frame);
|
||||||
|
gtk_container_add(GTK_CONTAINER(central_box), sw_frame);
|
||||||
|
|
||||||
if (!!theApp.GetConfig("UserHacks", 0))
|
if (!!theApp.GetConfig("UserHacks", 0))
|
||||||
{
|
{
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), hack_frame);
|
gtk_container_add(GTK_CONTAINER(advance_box), hack_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(main_box), gl_frame);
|
gtk_container_add(GTK_CONTAINER(advance_box), gl_frame);
|
||||||
|
|
||||||
g_signal_connect(render_combo_box, "changed", G_CALLBACK(toggle_widget_states), NULL);
|
g_signal_connect(render_combo_box, "changed", G_CALLBACK(toggle_widget_states), NULL);
|
||||||
g_signal_connect(fsaa_combo_box, "changed", G_CALLBACK(toggle_widget_states), NULL);
|
g_signal_connect(fsaa_combo_box, "changed", G_CALLBACK(toggle_widget_states), NULL);
|
||||||
g_signal_connect(native_res_check, "toggled", G_CALLBACK(toggle_widget_states), NULL);
|
g_signal_connect(native_res_check, "toggled", G_CALLBACK(toggle_widget_states), NULL);
|
||||||
|
|
||||||
// Put the box in the dialog and show it to the world.
|
// Put the box in the dialog and show it to the world.
|
||||||
gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), main_box);
|
gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), main_box);
|
||||||
gtk_widget_show_all (dialog);
|
gtk_widget_show_all (dialog);
|
||||||
|
@ -558,6 +576,7 @@ override_GL_ARB_shading_language_420pack = -1
|
||||||
theApp.SetConfig("UserHacks_SkipDraw", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(hack_skipdraw_spin)));
|
theApp.SetConfig("UserHacks_SkipDraw", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(hack_skipdraw_spin)));
|
||||||
theApp.SetConfig("UserHacks_HalfPixelOffset", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_offset_check)));
|
theApp.SetConfig("UserHacks_HalfPixelOffset", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_offset_check)));
|
||||||
theApp.SetConfig("UserHacks_AlphaHack", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_alpha_check)));
|
theApp.SetConfig("UserHacks_AlphaHack", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_alpha_check)));
|
||||||
|
theApp.SetConfig("logz", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_logz_check)));
|
||||||
|
|
||||||
theApp.SetConfig("UserHacks_MSAA", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_msaa_check)));
|
theApp.SetConfig("UserHacks_MSAA", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_msaa_check)));
|
||||||
theApp.SetConfig("UserHacks_WildHack", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_wild_check)));
|
theApp.SetConfig("UserHacks_WildHack", (int)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hack_wild_check)));
|
||||||
|
@ -576,6 +595,7 @@ override_GL_ARB_shading_language_420pack = -1
|
||||||
theApp.SetConfig("override_GL_ARB_shader_subroutine", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_ss_combo)) - 1);
|
theApp.SetConfig("override_GL_ARB_shader_subroutine", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_ss_combo)) - 1);
|
||||||
theApp.SetConfig("override_geometry_shader", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_gs_combo)) - 1);
|
theApp.SetConfig("override_geometry_shader", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_gs_combo)) - 1);
|
||||||
theApp.SetConfig("override_GL_ARB_shader_image_load_store", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_ils_combo)) - 1);
|
theApp.SetConfig("override_GL_ARB_shader_image_load_store", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_ils_combo)) - 1);
|
||||||
|
theApp.SetConfig("override_GL_NV_depth_buffer_float", (int)gtk_combo_box_get_active(GTK_COMBO_BOX(gl_ndbf_combo)) - 1);
|
||||||
|
|
||||||
// NOT supported yet
|
// NOT supported yet
|
||||||
theApp.SetConfig("msaa", 0);
|
theApp.SetConfig("msaa", 0);
|
||||||
|
|
|
@ -23,9 +23,8 @@
|
||||||
#include "GSShaderOGL.h"
|
#include "GSShaderOGL.h"
|
||||||
#include "GLState.h"
|
#include "GLState.h"
|
||||||
|
|
||||||
GSShaderOGL::GSShaderOGL(bool debug, bool nv_depth) :
|
GSShaderOGL::GSShaderOGL(bool debug) :
|
||||||
m_debug_shader(debug),
|
m_debug_shader(debug),
|
||||||
m_nv_depth(nv_depth),
|
|
||||||
m_vs_sub_count(0),
|
m_vs_sub_count(0),
|
||||||
m_ps_sub_count(0)
|
m_ps_sub_count(0)
|
||||||
{
|
{
|
||||||
|
@ -398,7 +397,7 @@ std::string GSShaderOGL::GenGlslHeader(const std::string& entry, GLenum type, co
|
||||||
header += "#define ENABLE_BINDLESS_TEX\n";
|
header += "#define ENABLE_BINDLESS_TEX\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_nv_depth) {
|
if (GLLoader::found_GL_NV_depth_buffer_float) {
|
||||||
// Specific nvidia extension that seem to help for z fighting
|
// Specific nvidia extension that seem to help for z fighting
|
||||||
header += "#define NV_DEPTH\n";
|
header += "#define NV_DEPTH\n";
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@ class GSShaderOGL {
|
||||||
GLuint m_pipeline;
|
GLuint m_pipeline;
|
||||||
hash_map<uint64, GLuint > m_single_prog;
|
hash_map<uint64, GLuint > m_single_prog;
|
||||||
const bool m_debug_shader;
|
const bool m_debug_shader;
|
||||||
const bool m_nv_depth;
|
|
||||||
GLuint m_vs_sub_count;
|
GLuint m_vs_sub_count;
|
||||||
GLuint m_ps_sub_count;
|
GLuint m_ps_sub_count;
|
||||||
|
|
||||||
|
@ -47,7 +46,7 @@ class GSShaderOGL {
|
||||||
GLuint LinkNewProgram();
|
GLuint LinkNewProgram();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GSShaderOGL(bool debug, bool nv_depth);
|
GSShaderOGL(bool debug);
|
||||||
~GSShaderOGL();
|
~GSShaderOGL();
|
||||||
|
|
||||||
void GS(GLuint s);
|
void GS(GLuint s);
|
||||||
|
|
Loading…
Reference in New Issue