Merge pull request #228 from delroth/trailing-whitespaces
Remove all trailing whitespaces from our codebase.
This commit is contained in:
commit
47d96e449a
|
@ -24,7 +24,7 @@
|
|||
// This shouldn't be a global, at least not here.
|
||||
SoundStream *soundStream = nullptr;
|
||||
|
||||
namespace AudioCommon
|
||||
namespace AudioCommon
|
||||
{
|
||||
SoundStream *InitSoundStream(CMixer *mixer, void *hWnd)
|
||||
{
|
||||
|
|
|
@ -59,7 +59,7 @@ private:
|
|||
public:
|
||||
XAudio2_7(CMixer *mixer);
|
||||
virtual ~XAudio2_7();
|
||||
|
||||
|
||||
virtual bool Start();
|
||||
virtual void Stop();
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Licensed under GPLv2
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
#pragma once
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
|
|
|
@ -31,8 +31,8 @@ struct ArraySizeImpl : public std::extent<T>
|
|||
#define b32(x) (b16(x) | (b16(x) >>16) )
|
||||
#define ROUND_UP_POW2(x) (b32(x - 1) + 1)
|
||||
|
||||
#ifndef __GNUC_PREREQ
|
||||
#define __GNUC_PREREQ(a, b) 0
|
||||
#ifndef __GNUC_PREREQ
|
||||
#define __GNUC_PREREQ(a, b) 0
|
||||
#endif
|
||||
|
||||
#if (defined __GNUC__ && !__GNUC_PREREQ(4,9)) && \
|
||||
|
@ -188,7 +188,7 @@ inline u32 swap24(const u8* _data) {return (_data[0] << 16) | (_data[1] << 8) |
|
|||
inline u16 swap16(u16 _data) {return _byteswap_ushort(_data);}
|
||||
inline u32 swap32(u32 _data) {return _byteswap_ulong (_data);}
|
||||
inline u64 swap64(u64 _data) {return _byteswap_uint64(_data);}
|
||||
#elif _M_ARM_32
|
||||
#elif _M_ARM_32
|
||||
inline u16 swap16 (u16 _data) { u32 data = _data; __asm__ ("rev16 %0, %1\n" : "=l" (data) : "l" (data)); return (u16)data;}
|
||||
inline u32 swap32 (u32 _data) {__asm__ ("rev %0, %1\n" : "=l" (_data) : "l" (_data)); return _data;}
|
||||
inline u64 swap64(u64 _data) {return ((u64)swap32(_data) << 32) | swap32(_data >> 32);}
|
||||
|
|
|
@ -145,6 +145,6 @@ private:
|
|||
Section* GetSection(const std::string& section);
|
||||
std::string* GetLine(const std::string& section, const std::string& key);
|
||||
void CreateSection(const std::string& section);
|
||||
|
||||
|
||||
static const std::string& NULL_STRING;
|
||||
};
|
||||
|
|
|
@ -128,7 +128,7 @@ void LogManager::Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
|
|||
|
||||
std::string msg = StringFromFormat("%s %s:%u %c[%s]: %s\n",
|
||||
Common::Timer::GetTimeFormatted().c_str(),
|
||||
file, line,
|
||||
file, line,
|
||||
LogTypes::LOG_LEVEL_TO_CHAR[(int)level],
|
||||
log->GetShortName(), temp);
|
||||
#ifdef ANDROID
|
||||
|
|
|
@ -52,7 +52,7 @@ void* AllocateExecutableMemory(size_t size, bool low)
|
|||
|
||||
// printf("Mapped executable memory at %p (size %ld)\n", ptr,
|
||||
// (unsigned long)size);
|
||||
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
if (ptr == MAP_FAILED)
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace Common
|
|||
std::string GetTicketFileName(u64 _titleID)
|
||||
{
|
||||
return StringFromFormat("%sticket/%08x/%08x.tik",
|
||||
File::GetUserPath(D_WIIUSER_IDX).c_str(),
|
||||
File::GetUserPath(D_WIIUSER_IDX).c_str(),
|
||||
(u32)(_titleID >> 32), (u32)_titleID);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ std::string GetTMDFileName(u64 _titleID)
|
|||
std::string GetTitleContentPath(u64 _titleID)
|
||||
{
|
||||
return StringFromFormat("%stitle/%08x/%08x/content/",
|
||||
File::GetUserPath(D_WIIUSER_IDX).c_str(),
|
||||
File::GetUserPath(D_WIIUSER_IDX).c_str(),
|
||||
(u32)(_titleID >> 32), (u32)_titleID);
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ public:
|
|||
// Key used to encrypt/decrypt setting.txt contents
|
||||
INITIAL_SEED = 0x73B5DBFA
|
||||
};
|
||||
|
||||
|
||||
void AddSetting(const std::string& key, const std::string& value);
|
||||
|
||||
const u8 *GetData() const;
|
||||
|
|
|
@ -59,8 +59,8 @@ public:
|
|||
void Reset()
|
||||
{
|
||||
std::unique_lock<std::mutex> lk(m_mutex);
|
||||
// no other action required, since wait loops on
|
||||
// the predicate and any lingering signal will get
|
||||
// no other action required, since wait loops on
|
||||
// the predicate and any lingering signal will get
|
||||
// cleared on the first iteration
|
||||
is_set = false;
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ std::string Timer::GetTimeFormatted()
|
|||
{
|
||||
time_t sysTime;
|
||||
time(&sysTime);
|
||||
|
||||
|
||||
struct tm * gmTime = localtime(&sysTime);
|
||||
|
||||
char tmp[13];
|
||||
|
|
|
@ -210,7 +210,7 @@ void OpArg::WriteRest(XEmitter *emit, int extraBytes, X64Reg _operandReg,
|
|||
#if _M_X86_64
|
||||
u64 ripAddr = (u64)emit->GetCodePtr() + 4 + extraBytes;
|
||||
s64 distance = (s64)offset - (s64)ripAddr;
|
||||
_assert_msg_(DYNA_REC,
|
||||
_assert_msg_(DYNA_REC,
|
||||
(distance < 0x80000000LL &&
|
||||
distance >= -0x80000000LL) ||
|
||||
!warn_64bit_offset,
|
||||
|
|
|
@ -200,7 +200,7 @@ inline OpArg ImmPtr(const void* imm) {return Imm64((u64)imm);}
|
|||
inline OpArg ImmPtr(const void* imm) {return Imm32((u32)imm);}
|
||||
#endif
|
||||
inline u32 PtrOffset(void* ptr, void* base) {
|
||||
#ifdef _ARCH_64
|
||||
#ifdef _ARCH_64
|
||||
s64 distance = (s64)ptr-(s64)base;
|
||||
if (distance >= 0x80000000LL ||
|
||||
distance < -0x80000000LL) {
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
#include "DiscIO/Volume.h"
|
||||
using DiscIO::IVolume;
|
||||
|
||||
typedef struct CountrySetting
|
||||
typedef struct CountrySetting
|
||||
{
|
||||
const std::string area;
|
||||
const std::string video;
|
||||
const std::string game;
|
||||
const std::string code;
|
||||
} CountrySetting;
|
||||
|
||||
|
||||
class CBoot
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -171,9 +171,9 @@ bool CBoot::SetupWiiMemory(IVolume::ECountry country)
|
|||
{IVolume::COUNTRY_TAIWAN, {"JPN", "NTSC", "JP", "LJ"}}
|
||||
};
|
||||
auto entryPos = country_settings.find(country);
|
||||
const CountrySetting& country_setting =
|
||||
(entryPos != country_settings.end()) ?
|
||||
entryPos->second :
|
||||
const CountrySetting& country_setting =
|
||||
(entryPos != country_settings.end()) ?
|
||||
entryPos->second :
|
||||
SETTING_EUROPE; //Default to EUROPE
|
||||
|
||||
SettingsHandler gen;
|
||||
|
@ -210,7 +210,7 @@ bool CBoot::SetupWiiMemory(IVolume::ECountry country)
|
|||
gen.AddSetting("SERNO", serno);
|
||||
gen.AddSetting("VIDEO", country_setting.video);
|
||||
gen.AddSetting("GAME", country_setting.game);
|
||||
|
||||
|
||||
File::CreateFullPath(settings_Filename);
|
||||
{
|
||||
File::IOFile settingsFileHandle(settings_Filename, "wb");
|
||||
|
@ -225,7 +225,7 @@ bool CBoot::SetupWiiMemory(IVolume::ECountry country)
|
|||
}
|
||||
|
||||
INFO_LOG(BOOT, "Setup Wii Memory...");
|
||||
|
||||
|
||||
/*
|
||||
Set hardcoded global variables to Wii memory. These are partly collected from
|
||||
Wiibrew. These values are needed for the games to function correctly. A few
|
||||
|
|
|
@ -357,9 +357,9 @@ void Spy(Wiimote* wm_, const void* data_, size_t size_)
|
|||
//if(((((u8*)&wm->m_reg_ext)[0xf0] == 0xaa) || ((u8*)&wm->m_reg_motion_plus)[0xf0] == 0xaa) && rdr->address>>8 < 0xf0) {
|
||||
|
||||
//if(!wm->GetMotionPlusActive() && ((u8*)&wm->m_reg_ext)[0xf0] == 0xaa && rdr->address>>8 < 0xf0) {
|
||||
|
||||
|
||||
//if(!wm->GetMotionPlusActive() && ((u8*)&wm->m_reg_ext)[0xf0] == 0xaa) {
|
||||
|
||||
|
||||
// SWARN_LOG(CONSOLE, "key %s", ArrayToString(((u8*)&wm->m_ext_key), sizeof(wm->m_ext_key), 0, 30).c_str());
|
||||
// SWARN_LOG(CONSOLE, "decrypt %s", ArrayToString(rdr->data, rdr->size+1, 0, 30).c_str());
|
||||
// wiimote_decrypt(&wm->m_ext_key, rdr->data, dataReply[2]&0xffff, rdr->size+1);
|
||||
|
|
|
@ -299,7 +299,7 @@ void Wiimote::Update()
|
|||
// Send the report
|
||||
if (!rpt.empty() && m_channel > 0)
|
||||
{
|
||||
Core::Callback_WiimoteInterruptChannel(index, m_channel,
|
||||
Core::Callback_WiimoteInterruptChannel(index, m_channel,
|
||||
rpt.data(), (u32)rpt.size());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -400,7 +400,7 @@ void CWII_IPC_HLE_Device_hid::FillOutDevices(u32 BufferOut, u32 BufferOutSize)
|
|||
for (ic = 0; ic < config->bNumInterfaces; ic++)
|
||||
{
|
||||
const struct libusb_interface *interfaceContainer = &config->interface[ic];
|
||||
|
||||
|
||||
for (i = 0; i < interfaceContainer->num_altsetting; i++)
|
||||
{
|
||||
const struct libusb_interface_descriptor *interface = &interfaceContainer->altsetting[i];
|
||||
|
|
|
@ -408,7 +408,7 @@ bool CWII_IPC_HLE_Device_net_ncd_manage::IOCtlV(u32 _CommandAddress)
|
|||
|
||||
case IOCTLV_NCD_GETWIRELESSMACADDRESS:
|
||||
INFO_LOG(WII_IPC_NET, "NET_NCD_MANAGE: IOCTLV_NCD_GETWIRELESSMACADDRESS");
|
||||
|
||||
|
||||
u8 address[MAC_ADDRESS_SIZE];
|
||||
GetMacAddress(address);
|
||||
Memory::WriteBigEData(address,
|
||||
|
@ -505,7 +505,7 @@ bool CWII_IPC_HLE_Device_net_wd_command::IOCtlV(u32 CommandAddress)
|
|||
// Probably used to disallow certain channels?
|
||||
memcpy(info->country, "US", 2);
|
||||
info->ntr_allowed_channels = Common::swap16(0xfffe);
|
||||
|
||||
|
||||
u8 address[MAC_ADDRESS_SIZE];
|
||||
GetMacAddress(address);
|
||||
memcpy(info->mac, address, sizeof(info->mac));
|
||||
|
|
|
@ -208,7 +208,7 @@ _SSL_NEW_ERROR:
|
|||
ssl_free(&ssl->ctx);
|
||||
|
||||
entropy_free(&ssl->entropy);
|
||||
|
||||
|
||||
x509_crt_free(&ssl->cacert);
|
||||
x509_crt_free(&ssl->clicert);
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ u8 LanguageBaseAttributeIDList[] = {
|
|||
0x35, 0x09,
|
||||
0x09, 0x65, 0x6e,
|
||||
0x09, 0x00, 0x6a,
|
||||
0x09, 0x01, 0x00
|
||||
0x09, 0x01, 0x00
|
||||
};
|
||||
|
||||
// 0x09 (checked)
|
||||
|
@ -46,7 +46,7 @@ u8 BluetoothProfileDescriptorList[] = {
|
|||
0x35, 0x08,
|
||||
0x35, 0x06,
|
||||
0x19, 0x11, 0x24,
|
||||
0x09, 0x01, 0x00
|
||||
0x09, 0x01, 0x00
|
||||
};
|
||||
|
||||
// 0x0D (checked)
|
||||
|
|
|
@ -290,7 +290,7 @@ void Jit64::WriteExit(u32 destination)
|
|||
linkData.linkStatus = false;
|
||||
|
||||
// Link opportunity!
|
||||
int block;
|
||||
int block;
|
||||
if (jo.enableBlocklink && (block = blocks.GetBlockNumberFromStartAddress(destination)) >= 0)
|
||||
{
|
||||
// It exists! Joy of joy!
|
||||
|
|
|
@ -393,7 +393,7 @@ void JitIL::WriteExit(u32 destination)
|
|||
linkData.linkStatus = false;
|
||||
|
||||
// Link opportunity!
|
||||
int block;
|
||||
int block;
|
||||
if (jo.enableBlocklink && (block = blocks.GetBlockNumberFromStartAddress(destination)) >= 0)
|
||||
{
|
||||
// It exists! Joy of joy!
|
||||
|
@ -541,7 +541,7 @@ const u8* JitIL::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBloc
|
|||
// Analyze the block, collect all instructions it is made of (including inlining,
|
||||
// if that is enabled), reorder instructions for optimal performance, and join joinable instructions.
|
||||
u32 exitAddress = em_address;
|
||||
|
||||
|
||||
u32 merged_addresses[32];
|
||||
const int capacity_of_merged_addresses = sizeof(merged_addresses) / sizeof(merged_addresses[0]);
|
||||
int size_of_merged_addresses = 0;
|
||||
|
|
|
@ -187,7 +187,7 @@ void JitArm::WriteExit(u32 destination)
|
|||
linkData.linkStatus = false;
|
||||
|
||||
// Link opportunity!
|
||||
int block;
|
||||
int block;
|
||||
if (jo.enableBlocklink && (block = blocks.GetBlockNumberFromStartAddress(destination)) >= 0)
|
||||
{
|
||||
// It exists! Joy of joy!
|
||||
|
|
|
@ -955,7 +955,7 @@ void JitArm::twx(UGeckoInstruction inst)
|
|||
|
||||
gpr.Flush();
|
||||
fpr.Flush();
|
||||
|
||||
|
||||
ARMReg RA = gpr.GetReg();
|
||||
ARMReg RB = gpr.GetReg();
|
||||
MOV(RA, inst.TO);
|
||||
|
@ -1001,7 +1001,7 @@ void JitArm::twx(UGeckoInstruction inst)
|
|||
SetJumpTarget(take3);
|
||||
SetJumpTarget(take4);
|
||||
SetJumpTarget(take5);
|
||||
|
||||
|
||||
LDR(RA, R9, PPCSTATE_OFF(Exceptions));
|
||||
MOVI2R(RB, EXCEPTION_PROGRAM); // XXX: Can be optimized
|
||||
ORR(RA, RA, RB);
|
||||
|
|
|
@ -128,7 +128,7 @@ void JitArmIL::WriteExit(u32 destination)
|
|||
linkData.linkStatus = false;
|
||||
|
||||
// Link opportunity!
|
||||
int block;
|
||||
int block;
|
||||
if (jo.enableBlocklink && (block = blocks.GetBlockNumberFromStartAddress(destination)) >= 0)
|
||||
{
|
||||
// It exists! Joy of joy!
|
||||
|
|
|
@ -96,7 +96,7 @@ TODO (in no particular order):
|
|||
- Scheduling to reduce register pressure: PowerPCcompilers like to push
|
||||
uses far away from definitions, but it's rather unfriendly to modern
|
||||
x86 processors, which are short on registers and extremely good at instruction reordering.
|
||||
|
||||
|
||||
- Common subexpression elimination
|
||||
- Optimize load/store of sum using complex addressing (partially implemented)
|
||||
- Loop optimizations (loop-carried registers, LICM)
|
||||
|
|
|
@ -189,7 +189,7 @@ void PrintInstructionRunCounts()
|
|||
GekkoOPInfo *pInst = m_allInstructions[i];
|
||||
temp.emplace_back(pInst->opname, pInst->runCount);
|
||||
}
|
||||
std::sort(temp.begin(), temp.end(),
|
||||
std::sort(temp.begin(), temp.end(),
|
||||
[](const OpInfo &a, const OpInfo &b)
|
||||
{
|
||||
return a.second > b.second;
|
||||
|
|
|
@ -143,7 +143,7 @@ void FindFilename(u64 offset)
|
|||
}
|
||||
|
||||
const std::string filename = pFileSystem->GetFileName(offset);
|
||||
|
||||
|
||||
if (filename.empty())
|
||||
return;
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ namespace ButtonManager
|
|||
Button() : m_state(BUTTON_RELEASED) {}
|
||||
void SetState(ButtonState state) { m_state = state; }
|
||||
bool Pressed() { return m_state == BUTTON_PRESSED; }
|
||||
|
||||
|
||||
~Button() {}
|
||||
};
|
||||
class Axis
|
||||
|
|
|
@ -119,7 +119,7 @@ void Host_SysMessage(const char *fmt, ...)
|
|||
va_list args;
|
||||
|
||||
va_start(args, fmt);
|
||||
__android_log_vprint(ANDROID_LOG_INFO, DOLPHIN_TAG, fmt, args);
|
||||
__android_log_vprint(ANDROID_LOG_INFO, DOLPHIN_TAG, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
|
@ -215,7 +215,7 @@ std::string GetJString(JNIEnv *env, jstring jstr)
|
|||
std::string result = "";
|
||||
if (!jstr)
|
||||
return result;
|
||||
|
||||
|
||||
const char *s = env->GetStringUTFChars(jstr, nullptr);
|
||||
result = s;
|
||||
env->ReleaseStringUTFChars(jstr, s);
|
||||
|
|
|
@ -126,7 +126,7 @@ void Host_SysMessage(const char *fmt, ...)
|
|||
msg[len - 1] = '\n';
|
||||
msg[len] = '\0';
|
||||
}
|
||||
|
||||
|
||||
fprintf(stderr, "%s", msg);
|
||||
}
|
||||
|
||||
|
|
|
@ -463,7 +463,7 @@ void CWiiSaveCrypted::do_sig()
|
|||
|
||||
u32 NG_key_id = 0x6AAB8C59;
|
||||
|
||||
u8 NG_priv[30] = {
|
||||
u8 NG_priv[30] = {
|
||||
0, 0xAB, 0xEE, 0xC1, 0xDD, 0xB4, 0xA6, 0x16, 0x6B, 0x70, 0xFD, 0x7E, 0x56, 0x67, 0x70,
|
||||
0x57, 0x55, 0x27, 0x38, 0xA3, 0x26, 0xC5, 0x46, 0x16, 0xF7, 0x62, 0xC9, 0xED, 0x73, 0xF2
|
||||
};
|
||||
|
|
|
@ -37,7 +37,7 @@ private:
|
|||
const ButtonManager::ButtonType _index;
|
||||
const float _neg;
|
||||
};
|
||||
|
||||
|
||||
public:
|
||||
bool UpdateInput() { return true; }
|
||||
bool UpdateOutput() { return true; }
|
||||
|
|
|
@ -171,13 +171,13 @@ template<>
|
|||
void ForceFeedbackDevice::ForceConstant::SetState(const ControlState state)
|
||||
{
|
||||
const LONG new_val = LONG(10000 * state);
|
||||
|
||||
|
||||
LONG &val = params.lMagnitude;
|
||||
if (val != new_val)
|
||||
{
|
||||
val = new_val;
|
||||
m_state.params = ¶ms; // tells UpdateOutput the state has changed
|
||||
|
||||
|
||||
// tells UpdateOutput to either start or stop the force
|
||||
m_state.size = new_val ? sizeof(params) : 0;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Licensed under GPLv2
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
/*
|
||||
/*
|
||||
* The OS X Force Feedback API is very similar to the DirectInput API,
|
||||
* but it is no longer object-oriented and all prefixes have been changed.
|
||||
*
|
||||
|
@ -155,7 +155,7 @@ class FFDeviceAdapter : public IUnknownImpl
|
|||
{
|
||||
public:
|
||||
FFDeviceObjectReference m_device;
|
||||
|
||||
|
||||
FFDeviceAdapter(FFDeviceObjectReference device) : m_device(device) {}
|
||||
~FFDeviceAdapter() { FFReleaseDevice(m_device); }
|
||||
|
||||
|
@ -206,7 +206,7 @@ public:
|
|||
// There are only two properties supported
|
||||
if (property != DIPROP_FFGAIN && property != DIPROP_AUTOCENTER)
|
||||
return DIERR_UNSUPPORTED;
|
||||
|
||||
|
||||
// And they are both device properties
|
||||
if (pdiph->dwHow != DIPH_DEVICE)
|
||||
return DIERR_INVALIDPARAM;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
/*
|
||||
* Define all constants from ForceFeedbackConstants.h with DirectInput prefixes.
|
||||
*
|
||||
* No effort was made to confirm if all definitions are actually supported by
|
||||
|
|
|
@ -86,7 +86,7 @@ void Init(std::vector<Core::Device*>& devices)
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
XINPUT_CAPABILITIES caps;
|
||||
for (int i = 0; i != 4; ++i)
|
||||
if (ERROR_SUCCESS == PXInputGetCapabilities(i, 0, &caps))
|
||||
|
|
|
@ -1582,7 +1582,7 @@ namespace GLExtensions
|
|||
const char* extensions = (const char*)glGetString(GL_EXTENSIONS);
|
||||
std::string tmp(extensions);
|
||||
std::istringstream buffer(tmp);
|
||||
|
||||
|
||||
while (buffer >> tmp)
|
||||
m_extension_list[tmp] = true;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace GLExtensions
|
|||
// Function for checking if the hardware supports an extension
|
||||
// example: if (GLExtensions::Supports("GL_ARB_multi_map"))
|
||||
bool Supports(const std::string& name);
|
||||
|
||||
|
||||
// Returns OpenGL version in format 430
|
||||
u32 Version();
|
||||
}
|
||||
|
|
|
@ -372,7 +372,7 @@ Renderer::Renderer()
|
|||
g_ogl_config.glsl_version = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION);
|
||||
|
||||
InitDriverInfo();
|
||||
|
||||
|
||||
// check for the max vertex attributes
|
||||
GLint numvertexattribs = 0;
|
||||
glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &numvertexattribs);
|
||||
|
|
|
@ -39,25 +39,25 @@ StreamBuffer::~StreamBuffer()
|
|||
}
|
||||
|
||||
/* Shared synchronisation code for ring buffers
|
||||
*
|
||||
*
|
||||
* The next three functions are to create/delete/use the OpenGL synchronisation.
|
||||
* ARB_sync (OpenGL 3.2) is used and required.
|
||||
*
|
||||
*
|
||||
* To reduce overhead, the complete buffer is splitted up into SYNC_POINTS chunks.
|
||||
* For each of this chunks, there is a fence which checks if this chunk is still in use.
|
||||
*
|
||||
*
|
||||
* As our API allows to alloc more memory then it has to use, we have to catch how much is already written.
|
||||
*
|
||||
*
|
||||
* m_iterator - writing position
|
||||
* m_free_iterator - last position checked if free
|
||||
* m_used_iterator - last position known to be written
|
||||
*
|
||||
*
|
||||
* So on alloc, we have to wait for all slots between m_free_iterator and m_iterator (and set m_free_iterator to m_iterator afterwards).
|
||||
*
|
||||
*
|
||||
* We also assume that this buffer is accessed by the gpu between the Unmap and Map function,
|
||||
* so we may create the fences on the start of mapping.
|
||||
* Some here, new fences for the chunks between m_used_iterator and m_iterator (also update m_used_iterator).
|
||||
*
|
||||
*
|
||||
* As ring buffers have an ugly behavoir on rollover, have fun to read this code ;)
|
||||
*/
|
||||
|
||||
|
@ -133,7 +133,7 @@ void StreamBuffer::Align(u32 stride)
|
|||
* Described here: https://www.opengl.org/wiki/Buffer_Object_Streaming#Unsynchronized_buffer_mapping
|
||||
* Just do unsync appends until the buffer is full.
|
||||
* When it's full, orphan (alloc a new buffer and free the old one)
|
||||
*
|
||||
*
|
||||
* As reallocation is an overhead, this method isn't as fast as it is known to be.
|
||||
*/
|
||||
class MapAndOrphan : public StreamBuffer
|
||||
|
@ -203,14 +203,14 @@ public:
|
|||
/* Streaming fifo without mapping ovearhead.
|
||||
* This one usually requires ARB_buffer_storage (OpenGL 4.4).
|
||||
* And is usually not available on OpenGL3 gpus.
|
||||
*
|
||||
*
|
||||
* ARB_buffer_storage allows us to render from a mapped buffer.
|
||||
* So we map it persistently in the initialization.
|
||||
*
|
||||
*
|
||||
* Unsync mapping sounds like an easy task, but it isn't for threaded drivers.
|
||||
* So every mapping on current close-source driver _will_ end in
|
||||
* at least a round trip time between two threads.
|
||||
*
|
||||
*
|
||||
* As persistently mapped buffer can't use orphaning, we also have to sync.
|
||||
*/
|
||||
class BufferStorage : public StreamBuffer
|
||||
|
@ -224,9 +224,9 @@ public:
|
|||
// COHERENT_BIT is set so we don't have to use a MemoryBarrier on write
|
||||
// CLIENT_STORAGE_BIT is set since we access the buffer more frequently on the client side then server side
|
||||
glBufferStorage(m_buffertype, m_size, nullptr,
|
||||
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT | GL_CLIENT_STORAGE_BIT);
|
||||
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT | GL_CLIENT_STORAGE_BIT);
|
||||
m_pointer = (u8*)glMapBufferRange(m_buffertype, 0, m_size,
|
||||
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT);
|
||||
GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT);
|
||||
}
|
||||
|
||||
~BufferStorage() {
|
||||
|
@ -251,7 +251,7 @@ public:
|
|||
/* --- AMD only ---
|
||||
* Another streaming fifo without mapping overhead.
|
||||
* As we can't orphan without mapping, we have to sync.
|
||||
*
|
||||
*
|
||||
* This one uses AMD_pinned_memory which is available on all AMD gpus.
|
||||
* OpenGL 4.4 drivers should use BufferStorage.
|
||||
*/
|
||||
|
|
|
@ -40,7 +40,7 @@ protected:
|
|||
|
||||
const u32 m_buffertype;
|
||||
const size_t m_size;
|
||||
|
||||
|
||||
size_t m_iterator;
|
||||
size_t m_used_iterator;
|
||||
size_t m_free_iterator;
|
||||
|
|
|
@ -180,8 +180,8 @@ void Init()
|
|||
glBindTexture(GL_TEXTURE_2D, s_dstTexture);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, renderBufferWidth, renderBufferHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
|
||||
|
||||
|
||||
|
||||
|
||||
FramebufferManager::SetFramebuffer(s_texConvFrameBuffer[0]);
|
||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, s_dstTexture, 0);
|
||||
FramebufferManager::SetFramebuffer(0);
|
||||
|
|
|
@ -157,7 +157,7 @@ void DumpDepth(const std::string& filename)
|
|||
{
|
||||
u32 depth = EfbInterface::GetDepth(x, y);
|
||||
// depth to rgba
|
||||
*(writePtr++) = depth & 0xff;
|
||||
*(writePtr++) = depth & 0xff;
|
||||
*(writePtr++) = (depth >> 8) & 0xff;
|
||||
*(writePtr++) = (depth >> 16) & 0xff;
|
||||
*(writePtr++) = 255;
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace SWRenderer
|
|||
void Init();
|
||||
void Prepare();
|
||||
void Shutdown();
|
||||
|
||||
|
||||
void SetScreenshot(const char *_szFilename);
|
||||
void RenderText(const char* pstr, int left, int top, u32 color);
|
||||
void DrawDebugText();
|
||||
|
|
|
@ -516,7 +516,7 @@ void Tev::Draw()
|
|||
#if ALLOW_TEV_DUMPS
|
||||
if (g_SWVideoConfig.bDumpTevStages)
|
||||
{
|
||||
u8 stage[4] = {
|
||||
u8 stage[4] = {
|
||||
IndirectTex[stageNum][TextureSampler::ALP_SMP],
|
||||
IndirectTex[stageNum][TextureSampler::BLU_SMP],
|
||||
IndirectTex[stageNum][TextureSampler::GRN_SMP],
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace DriverDetails
|
|||
const u32 m_os = OS_ALL | OS_ANDROID;
|
||||
#elif __APPLE__
|
||||
const u32 m_os = OS_ALL | OS_OSX;
|
||||
#elif __linux__
|
||||
#elif __linux__
|
||||
const u32 m_os = OS_ALL | OS_LINUX;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
namespace DriverDetails
|
||||
{
|
||||
// Enum of supported operating systems
|
||||
enum OS
|
||||
enum OS
|
||||
{
|
||||
OS_ALL = (1 << 0),
|
||||
OS_WINDOWS = (1 << 1),
|
||||
|
@ -132,13 +132,13 @@ namespace DriverDetails
|
|||
// The driver stalls in each instance no matter what you do
|
||||
// Apparently Mali and Adreno share code in this regard since it was wrote by the same person.
|
||||
BUG_BROKENBUFFERSTREAM,
|
||||
// Bug: GLSL ES 3.0 textureSize causes abort
|
||||
// Bug: GLSL ES 3.0 textureSize causes abort
|
||||
// Affected devices: Adreno a3xx
|
||||
// Started Version: -1 (Noticed in v53)
|
||||
// Ended Version: -1
|
||||
// If a shader includes a textureSize function call then the shader compiler will call abort()
|
||||
BUG_BROKENTEXTURESIZE,
|
||||
// Bug: ARB_buffer_storage doesn't work with ARRAY_BUFFER type streams
|
||||
// Bug: ARB_buffer_storage doesn't work with ARRAY_BUFFER type streams
|
||||
// Affected devices: Geforce 4xx+
|
||||
// Started Version: -1
|
||||
// Ended Version: 332.21
|
||||
|
@ -165,7 +165,7 @@ namespace DriverDetails
|
|||
// TODO: some windows AMD driver/gpu combination seems also affected
|
||||
// but as they all support pinned memory, it doesn't matter
|
||||
BUG_BROKENUNSYNCMAPPING,
|
||||
// Bug: Adreno now rotates the framebuffer on blit a full 180 degrees
|
||||
// Bug: Adreno now rotates the framebuffer on blit a full 180 degrees
|
||||
// Affected devices: Adreno
|
||||
// Started Version: v53 (dev drivers)
|
||||
// Ended Version: -1
|
||||
|
|
|
@ -752,7 +752,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
|
|||
colmat[0] = colmat[4] = colmat[8] = colmat[15] = 1.0f;
|
||||
ColorMask[0] = ColorMask[3] = 15.0f;
|
||||
ColorMask[4] = ColorMask[7] = 1.0f / 15.0f;
|
||||
|
||||
|
||||
cbufid = 16;
|
||||
if (!efbHasAlpha) {
|
||||
ColorMask[3] = 0.0f;
|
||||
|
@ -762,7 +762,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
|
|||
break;
|
||||
case 3: // RA8
|
||||
colmat[0] = colmat[4] = colmat[8] = colmat[15] = 1.0f;
|
||||
|
||||
|
||||
cbufid = 18;
|
||||
if (!efbHasAlpha) {
|
||||
ColorMask[3] = 0.0f;
|
||||
|
@ -773,7 +773,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
|
|||
|
||||
case 7: // A8
|
||||
colmat[3] = colmat[7] = colmat[11] = colmat[15] = 1.0f;
|
||||
|
||||
|
||||
cbufid = 20;
|
||||
if (!efbHasAlpha) {
|
||||
ColorMask[3] = 0.0f;
|
||||
|
@ -820,7 +820,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
|
|||
ColorMask[4] = ColorMask[5] = ColorMask[6] = 1.0f / 31.0f;
|
||||
ColorMask[3] = 7.0f;
|
||||
ColorMask[7] = 1.0f / 7.0f;
|
||||
|
||||
|
||||
cbufid = 27;
|
||||
if (!efbHasAlpha) {
|
||||
ColorMask[3] = 0.0f;
|
||||
|
@ -830,7 +830,7 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat
|
|||
break;
|
||||
case 6: // RGBA8
|
||||
colmat[0] = colmat[5] = colmat[10] = colmat[15] = 1.0f;
|
||||
|
||||
|
||||
cbufid = 29;
|
||||
if (!efbHasAlpha) {
|
||||
ColorMask[3] = 0.0f;
|
||||
|
|
|
@ -597,8 +597,8 @@ void VertexLoader::CompileVertexTranslator()
|
|||
if (pFunc == nullptr)
|
||||
{
|
||||
Host_SysMessage(
|
||||
StringFromFormat("VertexLoader_Normal::GetFunction(%i %i %i %i) returned zero!",
|
||||
m_VtxDesc.Normal, m_VtxAttr.NormalFormat,
|
||||
StringFromFormat("VertexLoader_Normal::GetFunction(%i %i %i %i) returned zero!",
|
||||
m_VtxDesc.Normal, m_VtxAttr.NormalFormat,
|
||||
m_VtxAttr.NormalElements, m_VtxAttr.NormalIndex3).c_str());
|
||||
}
|
||||
WriteCall(pFunc);
|
||||
|
|
|
@ -135,7 +135,7 @@ static void ViewportCorrectionMatrix(Matrix44& result)
|
|||
float intendedY = xfregs.viewport.yOrig + xfregs.viewport.ht - scissorYOff;
|
||||
float intendedWd = 2.0f * xfregs.viewport.wd;
|
||||
float intendedHt = -2.0f * xfregs.viewport.ht;
|
||||
|
||||
|
||||
if (intendedWd < 0.f)
|
||||
{
|
||||
intendedX += intendedWd;
|
||||
|
@ -152,11 +152,11 @@ static void ViewportCorrectionMatrix(Matrix44& result)
|
|||
float Y = (intendedY >= 0.f) ? intendedY : 0.f;
|
||||
float Wd = (X + intendedWd <= EFB_WIDTH) ? intendedWd : (EFB_WIDTH - X);
|
||||
float Ht = (Y + intendedHt <= EFB_HEIGHT) ? intendedHt : (EFB_HEIGHT - Y);
|
||||
|
||||
|
||||
Matrix44::LoadIdentity(result);
|
||||
if (Wd == 0 || Ht == 0)
|
||||
return;
|
||||
|
||||
|
||||
result.data[4*0+0] = intendedWd / Wd;
|
||||
result.data[4*0+3] = (intendedWd - 2.f * (X - intendedX)) / Wd - 1.f;
|
||||
result.data[4*1+1] = intendedHt / Ht;
|
||||
|
@ -363,7 +363,7 @@ void VertexShaderManager::SetConstants()
|
|||
dirty = true;
|
||||
// This is so implementation-dependent that we can't have it here.
|
||||
g_renderer->SetViewport();
|
||||
|
||||
|
||||
// Update projection if the viewport isn't 1:1 useable
|
||||
if (!g_ActiveConfig.backend_info.bSupportsOversizedViewports)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue