RetroArch
localintermediate.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
3 // Copyright (C) 2016 LunarG, Inc.
4 // Copyright (C) 2017 ARM Limited.
5 // All rights reserved.
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions
9 // are met:
10 //
11 // Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 //
14 // Redistributions in binary form must reproduce the above
15 // copyright notice, this list of conditions and the following
16 // disclaimer in the documentation and/or other materials provided
17 // with the distribution.
18 //
19 // Neither the name of 3Dlabs Inc. Ltd. nor the names of its
20 // contributors may be used to endorse or promote products derived
21 // from this software without specific prior written permission.
22 //
23 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 // POSSIBILITY OF SUCH DAMAGE.
35 //
36 
37 #ifndef _LOCAL_INTERMEDIATE_INCLUDED_
38 #define _LOCAL_INTERMEDIATE_INCLUDED_
39 
40 #include "../Include/intermediate.h"
41 #include "../Public/ShaderLang.h"
42 #include "Versions.h"
43 
44 #include <algorithm>
45 #include <set>
46 #include <array>
47 
48 class TInfoSink;
49 
50 namespace glslang {
51 
53  int coord1; // stay agnostic about column/row; this is parse order
54  int coord2;
55 };
56 
57 typedef int TVectorSelector;
58 
59 const int MaxSwizzleSelectors = 4;
60 
61 template<typename selectorType>
63 public:
65 
66  void push_back(selectorType comp)
67  {
69  components[size_++] = comp;
70  }
71  void resize(int s)
72  {
73  assert(s <= size_);
74  size_ = s;
75  }
76  int size() const { return size_; }
77  selectorType operator[](int i) const
78  {
79  assert(i < MaxSwizzleSelectors);
80  return components[i];
81  }
82 
83 private:
84  int size_;
86 };
87 
88 //
89 // Some helper structures for TIntermediate. Their contents are encapsulated
90 // by TIntermediate.
91 //
92 
93 // Used for call-graph algorithms for detecting recursion, missing bodies, and dead bodies.
94 // A "call" is a pair: <caller, callee>.
95 // There can be duplicates. General assumption is the list is small.
96 struct TCall {
97  TCall(const TString& pCaller, const TString& pCallee) : caller(pCaller), callee(pCallee) { }
100  bool visited;
104 };
105 
106 // A generic 1-D range.
107 struct TRange {
108  TRange(int start, int last) : start(start), last(last) { }
109  bool overlap(const TRange& rhs) const
110  {
111  return last >= rhs.start && start <= rhs.last;
112  }
113  int start;
114  int last;
115 };
116 
117 // An IO range is a 3-D rectangle; the set of (location, component, index) triples all lying
118 // within the same location range, component range, and index value. Locations don't alias unless
119 // all other dimensions of their range overlap.
120 struct TIoRange {
123  bool overlap(const TIoRange& rhs) const
124  {
125  return location.overlap(rhs.location) && component.overlap(rhs.component) && index == rhs.index;
126  }
130  int index;
131 };
132 
133 // An offset range is a 2-D rectangle; the set of (binding, offset) pairs all lying
134 // within the same binding and offset range.
135 struct TOffsetRange {
137  : binding(binding), offset(offset) { }
138  bool overlap(const TOffsetRange& rhs) const
139  {
140  return binding.overlap(rhs.binding) && offset.overlap(rhs.offset);
141  }
144 };
145 
146 // Things that need to be tracked per xfb buffer.
147 struct TXfbBuffer {
148  TXfbBuffer() : stride(TQualifier::layoutXfbStrideEnd), implicitStride(0), containsDouble(false) { }
149  std::vector<TRange> ranges; // byte offsets that have already been assigned
150  unsigned int stride;
151  unsigned int implicitStride;
153 };
154 
155 // Track a set of strings describing how the module was processed.
156 // Using the form:
157 // process arg0 arg1 arg2 ...
158 // process arg0 arg1 arg2 ...
159 // where everything is textual, and there can be zero or more arguments
160 class TProcesses {
161 public:
164 
165  void addProcess(const char* process)
166  {
167  processes.push_back(process);
168  }
169  void addProcess(const std::string& process)
170  {
171  processes.push_back(process);
172  }
173  void addArgument(int arg)
174  {
175  processes.back().append(" ");
176  std::string argString = std::to_string(arg);
177  processes.back().append(argString);
178  }
179  void addArgument(const char* arg)
180  {
181  processes.back().append(" ");
182  processes.back().append(arg);
183  }
184  void addArgument(const std::string& arg)
185  {
186  processes.back().append(" ");
187  processes.back().append(arg);
188  }
189  void addIfNonZero(const char* process, int value)
190  {
191  if (value != 0) {
192  addProcess(process);
194  }
195  }
196 
197  const std::vector<std::string>& getProcesses() const { return processes; }
198 
199 private:
200  std::vector<std::string> processes;
201 };
202 
203 class TSymbolTable;
204 class TSymbol;
205 class TVariable;
206 
207 //
208 // Set of helper functions to help parse and build the tree.
209 //
211 public:
212  explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
213  implicitThisName("@this"), implicitCounterName("@count"),
216  invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet),
223 #ifdef NV_EXTENSIONS
224  layoutOverrideCoverage(false),
225  geoPassthroughEXT(false),
226 #endif
229  invertY(false),
238  {
239  localSize[0] = 1;
240  localSize[1] = 1;
241  localSize[2] = 1;
246 
247  shiftBinding.fill(0);
248  }
249  void setLimits(const TBuiltInResource& r) { resources = r; }
250 
252  void output(TInfoSink&, bool tree);
253  void removeTree();
254 
255  void setSource(EShSource s) { source = s; }
256  EShSource getSource() const { return source; }
257  void setEntryPointName(const char* ep)
258  {
259  entryPointName = ep;
260  processes.addProcess("entry-point");
262  }
263  void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; }
264  const std::string& getEntryPointName() const { return entryPointName; }
266 
267  void setShiftBinding(TResourceType res, unsigned int shift)
268  {
269  shiftBinding[res] = shift;
270 
271  const char* name = getResourceName(res);
272  if (name != nullptr)
273  processes.addIfNonZero(name, shift);
274  }
275 
276  unsigned int getShiftBinding(TResourceType res) const { return shiftBinding[res]; }
277 
278  void setShiftBindingForSet(TResourceType res, unsigned int shift, unsigned int set)
279  {
280  if (shift == 0) // ignore if there's no shift: it's a no-op.
281  return;
282 
283  shiftBindingForSet[res][set] = shift;
284 
285  const char* name = getResourceName(res);
286  if (name != nullptr) {
288  processes.addArgument(shift);
289  processes.addArgument(set);
290  }
291  }
292 
293  int getShiftBindingForSet(TResourceType res, unsigned int set) const
294  {
295  const auto shift = shiftBindingForSet[res].find(set);
296  return shift == shiftBindingForSet[res].end() ? -1 : shift->second;
297  }
299 
300  void setResourceSetBinding(const std::vector<std::string>& shift)
301  {
302  resourceSetBinding = shift;
303  if (shift.size() > 0) {
304  processes.addProcess("resource-set-binding");
305  for (int s = 0; s < (int)shift.size(); ++s)
306  processes.addArgument(shift[s]);
307  }
308  }
309  const std::vector<std::string>& getResourceSetBinding() const { return resourceSetBinding; }
310  void setAutoMapBindings(bool map)
311  {
312  autoMapBindings = map;
313  if (autoMapBindings)
314  processes.addProcess("auto-map-bindings");
315  }
316  bool getAutoMapBindings() const { return autoMapBindings; }
317  void setAutoMapLocations(bool map)
318  {
319  autoMapLocations = map;
320  if (autoMapLocations)
321  processes.addProcess("auto-map-locations");
322  }
323  bool getAutoMapLocations() const { return autoMapLocations; }
324  void setInvertY(bool invert)
325  {
326  invertY = invert;
327  if (invertY)
328  processes.addProcess("invert-y");
329  }
330  bool getInvertY() const { return invertY; }
331 
332  void setFlattenUniformArrays(bool flatten)
333  {
334  flattenUniformArrays = flatten;
336  processes.addProcess("flatten-uniform-arrays");
337  }
340  {
342  if (useUnknownFormat)
343  processes.addProcess("no-storage-format");
344  }
345  bool getNoStorageFormat() const { return useUnknownFormat; }
347  {
348  hlslOffsets = true;
349  if (hlslOffsets)
350  processes.addProcess("hlsl-offsets");
351  }
352  bool usingHlslOFfsets() const { return hlslOffsets; }
354  {
355  useStorageBuffer = true;
356  processes.addProcess("use-storage-buffer");
357  }
358  bool usingStorageBuffer() const { return useStorageBuffer; }
359  void setHlslIoMapping(bool b)
360  {
361  hlslIoMapping = b;
362  if (hlslIoMapping)
363  processes.addProcess("hlsl-iomap");
364  }
366 
367  template<class T> T addCounterBufferName(const T& name) const { return name + implicitCounterName; }
368  bool hasCounterBufferName(const TString& name) const {
369  size_t len = strlen(implicitCounterName);
370  return name.size() > len &&
371  name.compare(name.size() - len, len, implicitCounterName) == 0;
372  }
373 
375 
376  void setVersion(int v) { version = v; }
377  int getVersion() const { return version; }
379  EProfile getProfile() const { return profile; }
380  void setSpv(const SpvVersion& s)
381  {
382  spvVersion = s;
383 
384  // client processes
385  if (spvVersion.vulkan > 0)
386  processes.addProcess("client vulkan100");
387  if (spvVersion.openGl > 0)
388  processes.addProcess("client opengl100");
389 
390  // target-environment processes
391  if (spvVersion.vulkan > 0)
392  processes.addProcess("target-env vulkan1.0");
393  else if (spvVersion.vulkan > 0)
394  processes.addProcess("target-env vulkanUnknown");
395  if (spvVersion.openGl > 0)
396  processes.addProcess("target-env opengl");
397  }
398  const SpvVersion& getSpv() const { return spvVersion; }
399  EShLanguage getStage() const { return language; }
401  const std::set<std::string>& getRequestedExtensions() const { return requestedExtensions; }
402 
404  TIntermNode* getTreeRoot() const { return treeRoot; }
406  int getNumEntryPoints() const { return numEntryPoints; }
407  int getNumErrors() const { return numErrors; }
409  bool isRecursive() const { return recursive; }
410 
412  TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&);
413  TIntermSymbol* addSymbol(const TType&, const TSourceLoc&);
416  std::tuple<TIntermTyped*, TIntermTyped*> addConversion(TOperator op, TIntermTyped* node0, TIntermTyped* node1) const;
418  void addBiShapeConversion(TOperator, TIntermTyped*& lhsNode, TIntermTyped*& rhsNode);
424  TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType);
431  TOperator mapTypeToConstructorOp(const TType&) const;
438  bool areAllChildConst(TIntermAggregate* aggrNode);
440  TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc&);
442  TIntermTyped* addMethod(TIntermTyped*, const TType&, const TString*, const TSourceLoc&);
443  TIntermConstantUnion* addConstantUnion(const TConstUnionArray&, const TType&, const TSourceLoc&, bool literal = false) const;
444  TIntermConstantUnion* addConstantUnion(signed char, const TSourceLoc&, bool literal = false) const;
445  TIntermConstantUnion* addConstantUnion(unsigned char, const TSourceLoc&, bool literal = false) const;
446  TIntermConstantUnion* addConstantUnion(signed short, const TSourceLoc&, bool literal = false) const;
447  TIntermConstantUnion* addConstantUnion(unsigned short, const TSourceLoc&, bool literal = false) const;
448  TIntermConstantUnion* addConstantUnion(int, const TSourceLoc&, bool literal = false) const;
449  TIntermConstantUnion* addConstantUnion(unsigned int, const TSourceLoc&, bool literal = false) const;
450  TIntermConstantUnion* addConstantUnion(long long, const TSourceLoc&, bool literal = false) const;
451  TIntermConstantUnion* addConstantUnion(unsigned long long, const TSourceLoc&, bool literal = false) const;
452  TIntermConstantUnion* addConstantUnion(bool, const TSourceLoc&, bool literal = false) const;
453  TIntermConstantUnion* addConstantUnion(double, TBasicType, const TSourceLoc&, bool literal = false) const;
454  TIntermConstantUnion* addConstantUnion(const TString*, const TSourceLoc&, bool literal = false) const;
456  bool parseConstTree(TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false);
457  TIntermLoop* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&);
459  const TSourceLoc&, TIntermLoop*&);
462  template<typename selectorType> TIntermTyped* addSwizzle(TSwizzleSelectors<selectorType>&, const TSourceLoc&);
463 
464  // Low level functions to add nodes (no conversions or other higher level transformations)
465  // If a type is provided, the node's type will be set to it.
470 
471  // Constant folding (in Constant.cpp)
472  TIntermTyped* fold(TIntermAggregate* aggrNode);
476 
477  // Tree ops
478  static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay);
479 
480  // Linkage related
482  void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&);
483 
484  bool setInvocations(int i)
485  {
487  return invocations == i;
488  invocations = i;
489  return true;
490  }
491  int getInvocations() const { return invocations; }
492  bool setVertices(int m)
493  {
495  return vertices == m;
496  vertices = m;
497  return true;
498  }
499  int getVertices() const { return vertices; }
501  {
502  if (inputPrimitive != ElgNone)
503  return inputPrimitive == p;
504  inputPrimitive = p;
505  return true;
506  }
509  {
510  if (vertexSpacing != EvsNone)
511  return vertexSpacing == s;
512  vertexSpacing = s;
513  return true;
514  }
517  {
518  if (vertexOrder != EvoNone)
519  return vertexOrder == o;
520  vertexOrder = o;
521  return true;
522  }
524  void setPointMode() { pointMode = true; }
525  bool getPointMode() const { return pointMode; }
526 
527  bool setLocalSize(int dim, int size)
528  {
529  if (localSize[dim] > 1)
530  return size == localSize[dim];
531  localSize[dim] = size;
532  return true;
533  }
534  unsigned int getLocalSize(int dim) const { return localSize[dim]; }
535 
536  bool setLocalSizeSpecId(int dim, int id)
537  {
539  return id == localSizeSpecId[dim];
540  localSizeSpecId[dim] = id;
541  return true;
542  }
543  int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; }
544 
545  void setXfbMode() { xfbMode = true; }
546  bool getXfbMode() const { return xfbMode; }
547  void setMultiStream() { multiStream = true; }
548  bool isMultiStream() const { return multiStream; }
550  {
551  if (outputPrimitive != ElgNone)
552  return outputPrimitive == p;
553  outputPrimitive = p;
554  return true;
555  }
558  bool getOriginUpperLeft() const { return originUpperLeft; }
560  bool getPixelCenterInteger() const { return pixelCenterInteger; }
562  bool getEarlyFragmentTests() const { return earlyFragmentTests; }
564  bool getPostDepthCoverage() const { return postDepthCoverage; }
566  {
567  if (depthLayout != EldNone)
568  return depthLayout == d;
569  depthLayout = d;
570  return true;
571  }
572  TLayoutDepth getDepth() const { return depthLayout; }
574  bool isDepthReplacing() const { return depthReplacing; }
575 
577  bool getHlslFunctionality1() const { return hlslFunctionality1; }
578 
580  unsigned int getBlendEquations() const { return blendEquations; }
581 
582  void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
583  void merge(TInfoSink&, TIntermediate&);
584  void finalCheck(TInfoSink&, bool keepUncalled);
585 
586  void addIoAccessed(const TString& name) { ioAccessed.insert(name); }
587  bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); }
588 
589  int addUsedLocation(const TQualifier&, const TType&, bool& typeCollision);
590  int checkLocationRange(int set, const TIoRange& range, const TType&, bool& typeCollision);
591  int addUsedOffsets(int binding, int offset, int numOffsets);
592  bool addUsedConstantId(int id);
593  static int computeTypeLocationSize(const TType&, EShLanguage);
594  static int computeTypeUniformLocationSize(const TType&);
595 
596  bool setXfbBufferStride(int buffer, unsigned stride)
597  {
599  return xfbBuffers[buffer].stride == stride;
600  xfbBuffers[buffer].stride = stride;
601  return true;
602  }
603  unsigned getXfbStride(int buffer) const { return xfbBuffers[buffer].stride; }
604  int addXfbBufferOffset(const TType&);
605  unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const;
606  static int getBaseAlignmentScalar(const TType&, int& size);
607  static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor);
608  static bool improperStraddle(const TType& type, int size, int offset);
609  bool promote(TIntermOperator*);
610 
611 #ifdef NV_EXTENSIONS
612  void setLayoutOverrideCoverage() { layoutOverrideCoverage = true; }
613  bool getLayoutOverrideCoverage() const { return layoutOverrideCoverage; }
614  void setGeoPassthroughEXT() { geoPassthroughEXT = true; }
615  bool getGeoPassthroughEXT() const { return geoPassthroughEXT; }
616 #endif
617 
618  const char* addSemanticName(const TString& name)
619  {
620  return semanticNameSet.insert(name).first->c_str();
621  }
622 
623  void setSourceFile(const char* file) { if (file != nullptr) sourceFile = file; }
624  const std::string& getSourceFile() const { return sourceFile; }
625  void addSourceText(const char* text) { sourceText = sourceText + text; }
626  const std::string& getSourceText() const { return sourceText; }
627  void addProcesses(const std::vector<std::string>& p) {
628  for (int i = 0; i < (int)p.size(); ++i)
629  processes.addProcess(p[i]);
630  }
631  void addProcess(const std::string& process) { processes.addProcess(process); }
633  const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
634 
636  bool needsLegalization() const { return needToLegalize; }
637 
640 
641  const char* const implicitThisName;
642  const char* const implicitCounterName;
643 
644 protected:
645  TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
646  void error(TInfoSink& infoSink, const char*);
647  void warn(TInfoSink& infoSink, const char*);
648  void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
649  void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
650  void mergeImplicitArraySizes(TType&, const TType&);
651  void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage);
653  void checkCallGraphBodies(TInfoSink&, bool keepUncalled);
656  bool userOutputUsed() const;
657  bool isSpecializationOperation(const TIntermOperator&) const;
659  bool promoteUnary(TIntermUnary&);
661  void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&);
665  bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&);
667  bool isConversionAllowed(TOperator op, TIntermTyped* node) const;
668  TIntermUnary* createConversion(TBasicType convertTo, TIntermTyped* node) const;
669  std::tuple<TBasicType, TBasicType> getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const;
670  bool extensionRequested(const char *extension) const {return requestedExtensions.find(extension) != requestedExtensions.end();}
671  static const char* getResourceName(TResourceType);
672 
673  const EShLanguage language; // stage, known at construction time
674  EShSource source; // source language, known a bit later
677 
678  EProfile profile; // source profile
679  int version; // source version
682  std::set<std::string> requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them
687  bool recursive;
689  int vertices;
696  bool pointMode;
697  int localSize[3];
704  int blendEquations; // an 'or'ing of masks of shifts of TBlendEquationShift
705  bool xfbMode;
707 
708 #ifdef NV_EXTENSIONS
709  bool layoutOverrideCoverage;
710  bool geoPassthroughEXT;
711 #endif
712 
713  // Base shift values
714  std::array<unsigned int, EResCount> shiftBinding;
715 
716  // Per-descriptor-set shift values
717  std::array<std::map<int, int>, EResCount> shiftBindingForSet;
718 
719  std::vector<std::string> resourceSetBinding;
722  bool invertY;
728 
729  typedef std::list<TCall> TGraph;
731 
732  std::set<TString> ioAccessed; // set of names of statically read/written I/O that might need extra checking
733  std::vector<TIoRange> usedIo[4]; // sets of used locations, one for each of in, out, uniform, and buffers
734  std::vector<TOffsetRange> usedAtomics; // sets of bindings used by atomic counters
735  std::vector<TXfbBuffer> xfbBuffers; // all the data we need to track per xfb buffer
736  std::unordered_set<int> usedConstantId; // specialization constant ids used
737  std::set<TString> semanticNameSet;
738 
740 
741  // source code of shader, useful as part of debug information
744 
745  // for OpModuleProcessed, or equivalent
747 
750 
751 private:
752  void operator=(TIntermediate&); // prevent assignments
753 };
754 
755 } // end namespace glslang
756 
757 #endif // _LOCAL_INTERMEDIATE_INCLUDED_
int TVectorSelector
Definition: localintermediate.h:57
Definition: localintermediate.h:62
bool autoMapBindings
Definition: localintermediate.h:720
int numErrors
Definition: localintermediate.h:685
Definition: intermediate.h:1194
void setHlslOffsets()
Definition: localintermediate.h:346
TGraph callGraph
Definition: localintermediate.h:730
unsigned int computeTypeXfbSize(const TType &, bool &containsDouble) const
Definition: linkValidate.cpp:1039
GLuint const GLchar * name
Definition: glext.h:6671
Definition: intermediate.h:1520
Definition: Versions.h:53
void setNeedsLegalization()
Definition: localintermediate.h:635
void addSymbolLinkageNode(TIntermAggregate *&linkage, const TSymbol &)
Definition: Intermediate.cpp:2575
int vertices
Definition: localintermediate.h:689
bool isNonuniformPropagating(TOperator) const
Definition: Intermediate.cpp:2817
TOperator
Definition: intermediate.h:66
TIntermTyped * setAggregateOperator(TIntermNode *, TOperator, const TType &type, TSourceLoc)
Definition: Intermediate.cpp:420
int blendEquations
Definition: localintermediate.h:704
TProcesses()
Definition: localintermediate.h:162
void operator=(TIntermediate &)
Definition: intermediate.h:1443
bool multiStream
Definition: localintermediate.h:706
TLayoutGeometry getOutputPrimitive() const
Definition: localintermediate.h:556
std::string sourceFile
Definition: localintermediate.h:742
void setPixelCenterInteger()
Definition: localintermediate.h:559
EShTextureSamplerTransformMode
Definition: ShaderLang.h:196
GLenum GLenum GLuint components
Definition: glext.h:10527
unsigned int getBlendEquations() const
Definition: localintermediate.h:580
TIntermLoop * addLoop(TIntermNode *, TIntermTyped *, TIntermTyped *, bool testFirst, const TSourceLoc &)
Definition: Intermediate.cpp:2453
Definition: Types.h:294
bool inIoAccessed(const TString &name) const
Definition: localintermediate.h:587
GLenum mode
Definition: glext.h:6857
set set set set set set set macro pixldst1 op
Definition: pixman-arm-neon-asm.h:54
void setPointMode()
Definition: localintermediate.h:524
bool isFPPromotion(TBasicType from, TBasicType to) const
Definition: Intermediate.cpp:1235
std::vector< std::string > resourceSetBinding
Definition: localintermediate.h:719
~TProcesses()
Definition: localintermediate.h:163
Definition: InfoSink.h:138
void addProcess(const std::string &process)
Definition: localintermediate.h:631
bool promoteAggregate(TIntermAggregate &)
Definition: Intermediate.cpp:3392
TIntermTyped * addSwizzle(TSwizzleSelectors< selectorType > &, const TSourceLoc &)
Definition: Intermediate.cpp:2406
Definition: Versions.h:83
TIntermSelection * addSelection(TIntermTyped *cond, TIntermNodePair code, const TSourceLoc &)
Definition: Intermediate.cpp:2146
unsigned int Id
Definition: spirv.hpp:47
Definition: localintermediate.h:147
EShLanguage
Definition: ShaderLang.h:90
TLayoutGeometry getInputPrimitive() const
Definition: localintermediate.h:507
unsigned int stride
Definition: localintermediate.h:150
GLuint buffer
Definition: glext.h:6555
TBlendEquationShift
Definition: Types.h:394
std::unordered_set< int > usedConstantId
Definition: localintermediate.h:736
bool getNoStorageFormat() const
Definition: localintermediate.h:345
const char *const implicitCounterName
Definition: localintermediate.h:642
std::string entryPointName
Definition: localintermediate.h:675
Definition: localintermediate.h:107
void setXfbMode()
Definition: localintermediate.h:545
TIntermTyped * addAssign(TOperator op, TIntermTyped *left, TIntermTyped *right, TSourceLoc)
Definition: Intermediate.cpp:228
bool setInputPrimitive(TLayoutGeometry p)
Definition: localintermediate.h:500
std::string to_string(const T &val)
Definition: Common.h:45
void setBinaryDoubleOutput()
Definition: localintermediate.h:638
void addBlendEquation(TBlendEquationShift b)
Definition: localintermediate.h:579
unsigned int getShiftBinding(TResourceType res) const
Definition: localintermediate.h:276
#define T(x)
TIntermBranch * addBranch(TOperator, const TSourceLoc &)
Definition: Intermediate.cpp:2487
TLayoutGeometry outputPrimitive
Definition: localintermediate.h:691
Definition: Common.h:231
const std::vector< std::string > & getProcesses() const
Definition: localintermediate.h:633
bool flattenUniformArrays
Definition: localintermediate.h:723
TIntermTyped * addShapeConversion(const TType &, TIntermTyped *)
Definition: Intermediate.cpp:1167
Definition: SymbolTable.h:151
bool getPointMode() const
Definition: localintermediate.h:525
Definition: localintermediate.h:52
bool usingStorageBuffer() const
Definition: localintermediate.h:358
GLuint start
Definition: glext.h:6292
bool getOriginUpperLeft() const
Definition: localintermediate.h:558
TIntermAggregate * makeAggregate(TIntermNode *node)
Definition: Intermediate.cpp:2104
const char *const implicitThisName
Definition: localintermediate.h:641
int localSizeSpecId[3]
Definition: localintermediate.h:698
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection from
Definition: msg_hash_ar.h:34
TVertexOrder vertexOrder
Definition: localintermediate.h:695
EShSource source
Definition: localintermediate.h:674
GLdouble GLdouble GLdouble r
Definition: glext.h:6406
void setOriginUpperLeft()
Definition: localintermediate.h:557
GLuint res
Definition: glext.h:10520
bool xfbMode
Definition: localintermediate.h:705
TIntermTyped * addUnaryMath(TOperator, TIntermTyped *child, TSourceLoc)
Definition: Intermediate.cpp:276
TOffsetRange(TRange binding, TRange offset)
Definition: localintermediate.h:136
void checkCallGraphCycles(TInfoSink &)
Definition: linkValidate.cpp:535
const int MaxSwizzleSelectors
Definition: localintermediate.h:59
bool isConversionAllowed(TOperator op, TIntermTyped *node) const
Definition: Intermediate.cpp:453
GLenum GLsizei len
Definition: glext.h:7389
bool parseConstTree(TIntermNode *, TConstUnionArray, TOperator, const TType &, bool singleConstantParam=false)
Definition: parseConst.cpp:190
Definition: intermediate.h:1118
TIntermBinary * addBinaryNode(TOperator op, TIntermTyped *left, TIntermTyped *right, TSourceLoc) const
Definition: Intermediate.cpp:173
GLenum GLint * range
Definition: glext.h:8206
TIntermUnary * createConversion(TBasicType convertTo, TIntermTyped *node) const
Definition: Intermediate.cpp:489
TLayoutDepth depthLayout
Definition: localintermediate.h:701
GLsizeiptr size
Definition: glext.h:6559
void setFlattenUniformArrays(bool flatten)
Definition: localintermediate.h:332
Definition: intermediate.h:1034
static int getBaseAlignmentScalar(const TType &, int &size)
Definition: linkValidate.cpp:1103
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro pixld1_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl else error unsupported endif endm macro pixld2_s mem_operand if mov asr add asl add asl mov asr sub UNIT_X add asl mov asr add asl add asl mov asr add UNIT_X add asl else pixld1_s mem_operand pixld1_s mem_operand endif endm macro pixld0_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl endif endm macro pixld_s_internal mem_operand if mem_operand pixld2_s mem_operand pixdeinterleave basereg elseif mem_operand elseif mem_operand elseif mem_operand elseif mem_operand pixld0_s mem_operand else pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else error unsupported mem_operand if bpp mem_operand endif endm macro vuzp8 reg2 vuzp d d &reg2 endm macro vzip8 reg2 vzip d d &reg2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld [DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld endif[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro fetch_mask_pixblock pixld mask_basereg pixblock_size MASK endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp local skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld_src SRC pixld MASK if DST_R else pixld DST_R endif if
Definition: pixman-arm-neon-asm.h:543
int getVertices() const
Definition: localintermediate.h:499
GLenum GLuint id
Definition: glext.h:6233
Definition: localintermediate.h:210
void inOutLocationCheck(TInfoSink &)
Definition: linkValidate.cpp:694
void setEarlyFragmentTests()
Definition: localintermediate.h:561
static int cond(LexState *ls)
Definition: lparser.c:1177
Definition: ResourceLimits.h:52
bool needToLegalize
Definition: localintermediate.h:748
bool getAutoMapBindings() const
Definition: localintermediate.h:316
Definition: SymbolTable.h:539
void setUseStorageBuffer()
Definition: localintermediate.h:353
std::vector< TOffsetRange > usedAtomics
Definition: localintermediate.h:734
TIntermTyped * foldSwizzle(TIntermTyped *node, TSwizzleSelectors< TVectorSelector > &fields, const TSourceLoc &)
Definition: Constant.cpp:1100
Definition: localintermediate.h:135
GLdouble s
Definition: glext.h:6390
void setAutoMapBindings(bool map)
Definition: localintermediate.h:310
static const int layoutNotSet
Definition: Types.h:420
TString caller
Definition: localintermediate.h:98
int vulkan
Definition: Versions.h:87
void setEntryPointMangledName(const char *ep)
Definition: localintermediate.h:263
static int computeTypeUniformLocationSize(const TType &)
Definition: linkValidate.cpp:976
std::list< TCall > TGraph
Definition: localintermediate.h:729
bool getFlattenUniformArrays() const
Definition: localintermediate.h:338
unsigned int implicitStride
Definition: localintermediate.h:151
GLsizei const GLchar *const * string
Definition: glext.h:6699
Definition: localintermediate.h:96
TIntermTyped * foldConstructor(TIntermAggregate *aggrNode)
Definition: Constant.cpp:1045
int localSize[3]
Definition: localintermediate.h:697
void setResourceSetBinding(const std::vector< std::string > &shift)
Definition: localintermediate.h:300
Definition: ShaderLang.h:197
bool setVertexOrder(TVertexOrder o)
Definition: localintermediate.h:516
int last
Definition: localintermediate.h:114
Definition: intermediate.h:1234
int getNumErrors() const
Definition: localintermediate.h:407
const std::vector< std::string > & getResourceSetBinding() const
Definition: localintermediate.h:309
void error(TInfoSink &infoSink, const char *)
Definition: linkValidate.cpp:56
void pushSelector(TIntermSequence &, const TVectorSelector &, const TSourceLoc &)
Definition: Intermediate.cpp:2387
selectorType operator[](int i) const
Definition: localintermediate.h:77
std::tuple< TBasicType, TBasicType > getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const
Definition: Intermediate.cpp:1684
GLdouble GLdouble right
Definition: glext.h:11766
const char * addSemanticName(const TString &name)
Definition: localintermediate.h:618
Definition: intermediate.h:1154
TRange offset
Definition: localintermediate.h:143
void setTreeRoot(TIntermNode *r)
Definition: localintermediate.h:403
TIntermTyped * promoteConstantUnion(TBasicType, TIntermConstantUnion *) const
Definition: Intermediate.cpp:3519
void addArgument(int arg)
Definition: localintermediate.h:173
GLboolean GLboolean GLboolean b
Definition: glext.h:6844
bool recursive
Definition: localintermediate.h:687
TResourceType
Definition: ShaderLang.h:349
const std::string & getEntryPointName() const
Definition: localintermediate.h:264
Definition: intermediate.h:1076
void setLimits(const TBuiltInResource &r)
Definition: localintermediate.h:249
bool overlap(const TRange &rhs) const
Definition: localintermediate.h:109
const std::string & getEntryPointMangledName() const
Definition: localintermediate.h:265
void setShiftBinding(TResourceType res, unsigned int shift)
Definition: localintermediate.h:267
void setMultiStream()
Definition: localintermediate.h:547
GLint location
Definition: glext.h:6690
Definition: intermediate.h:988
static int computeTypeLocationSize(const TType &, EShLanguage)
Definition: linkValidate.cpp:921
bool promote(TIntermOperator *)
Definition: Intermediate.cpp:2928
bool currentPath
Definition: localintermediate.h:101
void addBiShapeConversion(TOperator, TIntermTyped *&lhsNode, TIntermTyped *&rhsNode)
Definition: Intermediate.cpp:1078
Definition: localintermediate.h:160
void setPostDepthCoverage()
Definition: localintermediate.h:563
bool getHlslFunctionality1() const
Definition: localintermediate.h:577
int calleeBodyPosition
Definition: localintermediate.h:103
bool setVertexSpacing(TVertexSpacing s)
Definition: localintermediate.h:508
const SpvVersion & getSpv() const
Definition: localintermediate.h:398
TLayoutDepth getDepth() const
Definition: localintermediate.h:572
TIntermConstantUnion * addConstantUnion(const TConstUnionArray &, const TType &, const TSourceLoc &, bool literal=false) const
Definition: Intermediate.cpp:2286
TBuiltInResource resources
Definition: localintermediate.h:683
std::array< unsigned int, EResCount > shiftBinding
Definition: localintermediate.h:714
TProcesses processes
Definition: localintermediate.h:746
TIntermTyped * addConversion(TOperator, const TType &, TIntermTyped *) const
Definition: Intermediate.cpp:863
TXfbBuffer()
Definition: localintermediate.h:148
bool postProcess(TIntermNode *, EShLanguage)
Definition: Intermediate.cpp:2504
TIntermUnary * addUnaryNode(TOperator op, TIntermTyped *child, TSourceLoc) const
Definition: Intermediate.cpp:199
GLenum type
Definition: glext.h:6233
std::set< TString > semanticNameSet
Definition: localintermediate.h:737
bool l
Definition: connect_wiiupro.c:37
void mergeErrorCheck(TInfoSink &, const TIntermSymbol &, const TIntermSymbol &, bool crossStage)
Definition: linkValidate.cpp:294
Definition: Types.h:1169
TSwizzleSelectors()
Definition: localintermediate.h:64
EProfile
Definition: Versions.h:51
static bool improperStraddle(const TType &type, int size, int offset)
Definition: linkValidate.cpp:1277
Definition: Types.h:418
void addToCallGraph(TInfoSink &, const TString &caller, const TString &callee)
Definition: Intermediate.cpp:2591
TVertexOrder getVertexOrder() const
Definition: localintermediate.h:523
TVertexSpacing vertexSpacing
Definition: localintermediate.h:694
void mergeLinkerObjects(TInfoSink &, TIntermSequence &linkerObjects, const TIntermSequence &unitLinkerObjects)
Definition: linkValidate.cpp:231
bool autoMapLocations
Definition: localintermediate.h:721
void incrementEntryPointCount()
Definition: localintermediate.h:405
static int getBaseAlignment(const TType &, int &size, int &stride, bool std140, bool rowMajor)
Definition: linkValidate.cpp:1132
static const unsigned int layoutXfbBufferEnd
Definition: Types.h:709
unsigned getXfbStride(int buffer) const
Definition: localintermediate.h:603
bool depthReplacing
Definition: localintermediate.h:702
void addArgument(const char *arg)
Definition: localintermediate.h:179
TVertexSpacing
Definition: Types.h:306
size_t strlen(const char *str)
Definition: compat_ctype.c:152
void addProcess(const char *process)
Definition: localintermediate.h:165
void setHlslIoMapping(bool b)
Definition: localintermediate.h:359
bool getPostDepthCoverage() const
Definition: localintermediate.h:564
int coord2
Definition: localintermediate.h:54
void setAutoMapLocations(bool map)
Definition: localintermediate.h:317
bool setXfbBufferStride(int buffer, unsigned stride)
Definition: localintermediate.h:596
int start
Definition: localintermediate.h:113
bool areAllChildConst(TIntermAggregate *aggrNode)
Definition: Constant.cpp:1027
void setSpv(const SpvVersion &s)
Definition: localintermediate.h:380
bool containsDouble
Definition: localintermediate.h:152
void addSourceText(const char *text)
Definition: localintermediate.h:625
std::string sourceText
Definition: localintermediate.h:743
void setProfile(EProfile p)
Definition: localintermediate.h:378
bool errorGiven
Definition: localintermediate.h:102
void addProcess(const std::string &process)
Definition: localintermediate.h:169
TRange(int start, int last)
Definition: localintermediate.h:108
bool binaryDoubleOutput
Definition: localintermediate.h:749
void warn(TInfoSink &infoSink, const char *)
Definition: linkValidate.cpp:65
int invocations
Definition: localintermediate.h:688
bool visited
Definition: localintermediate.h:100
TIntermediate(EShLanguage l, int v=0, EProfile p=ENoProfile)
Definition: localintermediate.h:212
void setInvertY(bool invert)
Definition: localintermediate.h:324
bool pointMode
Definition: localintermediate.h:696
Definition: Types.h:314
void merge(TInfoSink &, TIntermediate &)
Definition: linkValidate.cpp:78
void setSource(EShSource s)
Definition: localintermediate.h:255
unsigned int getLocalSize(int dim) const
Definition: localintermediate.h:534
TIntermAggregate * addForLoop(TIntermNode *, TIntermNode *, TIntermTyped *, TIntermTyped *, bool testFirst, const TSourceLoc &, TIntermLoop *&)
Definition: Intermediate.cpp:2465
EShLanguage getStage() const
Definition: localintermediate.h:399
TRange component
Definition: localintermediate.h:128
bool hlslFunctionality1
Definition: localintermediate.h:703
TLayoutGeometry
Definition: Types.h:293
TVertexSpacing getVertexSpacing() const
Definition: localintermediate.h:515
void setHlslFunctionality1()
Definition: localintermediate.h:576
std::vector< TRange > ranges
Definition: localintermediate.h:149
TIntermTyped * addUniShapeConversion(TOperator, const TType &, TIntermTyped *)
Definition: Intermediate.cpp:1025
bool promoteUnary(TIntermUnary &)
Definition: Intermediate.cpp:2948
TIntermNode * getTreeRoot() const
Definition: localintermediate.h:404
void addProcesses(const std::vector< std::string > &p)
Definition: localintermediate.h:627
std::set< std::string > requestedExtensions
Definition: localintermediate.h:682
Definition: inftrees.h:27
TIntermTyped * foldDereference(TIntermTyped *node, int index, const TSourceLoc &)
Definition: Constant.cpp:1066
int size_
Definition: localintermediate.h:84
int getVersion() const
Definition: localintermediate.h:377
GLfloat GLfloat p
Definition: glext.h:9809
bool extensionRequested(const char *extension) const
Definition: localintermediate.h:670
bool usingHlslIoMapping()
Definition: localintermediate.h:365
TIntermSymbol * addSymbol(const TVariable &)
Definition: Intermediate.cpp:89
Definition: intermediate.h:1482
std::vector< TXfbBuffer > xfbBuffers
Definition: localintermediate.h:735
bool specConstantPropagates(const TIntermTyped &, const TIntermTyped &)
Definition: Intermediate.cpp:3757
bool hasShiftBindingForSet(TResourceType res) const
Definition: localintermediate.h:298
int coord1
Definition: localintermediate.h:53
const std::set< std::string > & getRequestedExtensions() const
Definition: localintermediate.h:401
bool getAutoMapLocations() const
Definition: localintermediate.h:323
Definition: arrays.h:46
void addSymbolLinkageNodes(TIntermAggregate *&linkage, EShLanguage, TSymbolTable &)
Definition: Intermediate.cpp:2528
bool pixelCenterInteger
Definition: localintermediate.h:692
GLuint index
Definition: glext.h:6671
Nieznany kompilator Urządzenie zostało odłączone od portu Plik już istnieje Zapisywanie do bufora kopii zapasowej Mam połączenie Adres publiczny Ustawianie dysku w zasobniku Opuściłeś grę Dołączyłeś z urządzeniami wejściowymi *s *s dołączył jako gracz u Próba połączenia online nie powiodła ponieważ peer nie działa w trybie RetroArch lub używa starej wersji RetroArch użyjcie tej samej wersji użyj tej samej wersji Ten rdzeń nie obsługuje gry online między architekturami Niepoprawne hasło Klient gry online został odłączony Nie masz uprawnień do grania Żądane urządzenia wejściowe nie są dostępne Gracz s wstrzymał grę Nadaj rdzeniom sprzętowym własny prywatny kontekst Unikaj konieczności przejmowania zmian stanu sprzętu pomiędzy klatkami Dostosuj ustawienia wyglądu ekranu menu Poprawia wydajność kosztem opóźnień i częstszego rwania obrazu Używaj tylko gdy nie możesz uzyskać pełnej prędkości w przeciwnym razie Automatyczne wykrywanie Możliwości Łączenie z portem które nie wymagają nie mogą uczestniczyć w grze sieciowej Konta Cheevos Konta Retro osiągniecia Lista Skanuj zawartość Importuj zawartość Zapytać Zablokuj klatki Sterownik audio Włącz dźwięk Turbo Martwa strefa Maksymalne przesunięcie czasowe dźwięku Szybkość wyjścia Dynamiczna kontrola szybkości audio Dźwiek Poziom głośności Tryb WASAPI Współdzielony bufor WASAPI Automatyczne zastępowanie plików Automatycznie załaduj Shadery Potwierdź Wyjdź Przewiń do góry Przełącz klawiaturę Podstawowe ustawienia menu Informacje Przewiń do góry Przełącz klawiaturę Nie zastępuj SaveRAM przy ładowaniu stanu zapisu Adres URL zasobów Buildbot Zezwalaj na kamerę Oszukać Oszukane pliki Załaduj oszukany plik Oszukane przepustki Osiągnięcia trybu hardcore Odznaki osiągnięć Zablokowany Sprawdź nieoficjalne osiągnięcia Odblokowany Osiągnięcia trybu pełnego Zamknij zawartość Załaduj konfigurację Zapisz konfigurację przy wyjściu Baza danych Rozmiar listy historii Szybkie menu Pobrane pliki Liczniki rdzeniowe Informacje podstawowe Kategoria Nazwa rdzenia Licencja Obsługiwane rozszerzenia Nazwa systemu Załaduj rdzeń Rdzeń Automatycznie wyodrębnij pobrane archiwum Aktualizacja Rdzenia Architektura Rdzeń procesora Menedżer kursorów Menedżer bazy danych Usuń< Treść dir >< Żaden > Szczegóły Dołącz obraz dysku Kontrola dysku Pliki do pobrania Program do pobierania treści Nadpisz DPI Atrapa rdzenia przy zatrzymaniu rdzenia Dynamiczne tło Włącz osiągnięcia Normalny kolor menu Mnożnik prędkości Wyświetl ilość klatek na sekundę Manipulacja klatek Automatycznie ładuj zależne od zawartości opcje rdzenia Plik opcji gry Rozwiązywanie problemów audio wideo Podstawowa kontrola menu Ładowanie zawartości Co to jest rdzeń Historia Obraz Informacja Menu sterowania wszystkich użytkowników Lewy analog Lewy analog Lewy analog Y Lewy analog Prawo analog X Prawy analog Prawo analog Y Prawy analog Spust Pomocniczy A Pomocniczy C Wybierz D pad dół D pad prawo Martwa strefa gałki analogowej Powiąż wszystko Limit czasu powiązania Ukryj niezwiązane podstawowe deskryptory wejściowe Indeks urządzeń Indeks myszy Cykl zapisu Włączanie mapowania gamepada klawiatury Przycisk W dół D pad Przycisk L3 Lewy D pad R3 przycisk Prawy D pad Przycisk Start Przycisk Przycisk Mysz Mysz Mysz Kółko do dołu Kółko w prawo Maksymalna liczba użytkowników Indeks kodów Włącz kody Następny dysk Włącz klawisze skrótów Szybkie przewijanie do przodu Przełączanie pełnoekranowe Przełącznik ostrości gry Przełączanie menu Przełącznik wyciszania dźwięku Przełączanie klawiatury ekranowej Wstrzymaj przełącznik Zresetuj grę Zapisz stan Następny moduł cieniujący Zwolnione tempo Slot zapisu Głośność Wyświetl nakładkę Pokaż nakładki na nakładce Zachowanie typu ankiety Późno Preferuj dotyk Włącz sporządzanie mapy powiązań na nowo Sterowanie Włącz dotyk Okres turbo Opóźnienie Wprowadź autoconfig Usługi holenderski esperanto niemiecki japoński polski rosyjski wietnamski Lewy analog Informacje o rdzeniu Liniowy Załaduj ostatnie Wczytaj zapis Sterownik lokalizacji Zalogowanie rozmowy Ustawienia bazy danych Niebieski Ciemny niebieski NVIDIA Shield Żółty Nieprzezroczystość nagłówka Menu obrotowe przepustnicy częstotliwości wyświetlania klatek Menu filtra liniowego Wygląd Nieprzezroczystość tła Multimedia Filtruj nieznane rozszerzenia Najbliższy Zezwalaj na klientów w trybie slave Wejściowe klatki opóźnień Opóźnij klatki gry online Włącz grę online Uruchom hosta gry online Adres serwera Włącz klienta gry online Hasło serwera Zażądaj urządzenia u Ustawienia gry online Max Udostępnianie wejścia cyfrowego Zahacz Żaden Tryb widza gry online Hasło spontaniczne serwera Port TCP gry online Polecenia sieciowe Informacje o sieci Port zdalnej sieci Nie N A Bez rdzenia Brak dostępnych podstawowych informacji Brak wpisów do wyświetlenia Brak informacji Nie znaleziono hostów gry online Brak liczników wydajności Brak dostępnych pozycji na liście odtwarzania Brak parametrów modułu cieniującego Włącz Aktualizacja online Nakładka na ekranie Przeglądaj archiwum Nakładka Nakładka Ustawienia nakładki Nakładka na ekranie Nadrzędny katalog Nie pracuj w tle Listy odtwarzania Listy odtwarzania Port Prywatność Obsługa analog Ocena CERO CRC32 Deweloper Ocena magazynu Edge Ocena ELSPA Ocena ESRB Seria MD5 Pochodzenie Wydawca Rok wydania Kod seryjny Rozpocznij zawartość Restart Wyjście nagrywania Załaduj konfigurację nagrywania Sterownik MIDI Zapisz wyjścia jako Plik zmian Zapisz plik zmiany rdzenia Usuń plik zmiany rdzenia Wymagany Uruchom RetroArch ponownie Wznów zawartość Retro pad Osiągnięcia Przewijanie granularności Przeglądarka plików Wyświetl ekran startowy Dodaj do ulubionych Zresetuj domyślny rdzeń Uruchom muzykę Zapisz plik Automatyczne załadowanie stanu Zapisz stan Zapisz bieżącą konfigurację Zapisz nadpisania katalogu zawartości Zapisz nową konfigurację Zapisywanie Zeskanuj plik Zrzut ekranu Szukaj Ustawienia Shader Shadery Prosty śnieg Pokaż ustawienia zaawansowane Zamknąć Przejdź do przodu w celu skrócenia czasu oczekiwania Sortuj zapisy w folderach Ukryj ostrzeżenia RunAhead Napisz zapis stanów do treści dir Pliki systemowe znajdują się w katalogu treści Włącz SSH Uruchom zdalny Retro pad Slot zapisu Polecenia STDIN Wstrzymaj wygaszacz ekranu System BIOS Obsługa Data Builda Wsparcie Cocoa Obsługa CoreText Wyświetl DPI metryczne Wyświetl szerokość Wsparcie DirectSound Obsługa dynamicznej biblioteki Wsparcie EGL Wsparcie FFmpeg Wsparcie STB TrueType Nazwa frontendu Wersja Git Wsparcie HLSL Obsługa KMS EGL Obsługa LibretroDB Libxml2 obsługa parowania XML Obsługa interfejsu dowodzenia sieciowego Obsługa OpenAL Obsługa OpenGL Obsługa OpenVG Obsługa nakładek Naładowany Rozładowywanie Obsługa PulseAudio Obsługa Poziom Oceny Retro Obsługa RoarAudio Wsparcie RSound Wsparcie SDL2 Wsparcie SDL1 Przewlekanie wsparcia Obsługa Video4Linux2 Wsparcie Vulkan Wsparcie X11 Wsparcie XVideo Zrób zrzut ekranu Miniatury Miniatury dyspozycji pionowej Zaktualizuj miniatury Zrzuty ekranu Pokaż datę czas Prawdziwe Uruchom Companion UI przy włączeniu Uruchom menu okienkowe przy włączeniu Nie można odczytać skompresowanego pliku Cofnij zapisanie stanu Aktualizacja Zaktualizuj profile joypad Zaktualizuj kody Zaktualizuj bazy danych Zaktualizuj Lakka Zaktualizuj Shadery Slang Kbd Język Użyj wbudowanej przeglądarki zdjęć< Użyj tego katalogu > Konfiguruj współczynnik kształtu Proporcja obrazu Przytnij Wyłącz kompozycję pulpitu Sterownik wideo Filtr wideo Włącz powiadomienia na ekranie Rozmiar powiadomienia Wymuś wyłączenie sRGB FBO Użyj trybu pełnoekranowego Użyj zapisu GPU Trudna synchronizacja z GPU Maksymalne obrazy swapchain Pozycja Y powiadomienia Użyj funkcji Nagrywania po filtrowaniu Szacowana liczba klatek na sekundę na ekranie Obrót Skala całkowita Moduł cieniujący wideo Podgląd parametrów modułu cieniującego Zapisz ustawienie Shadera jako Zapisz ustawienie zawartości katalogu zawartości Włącz udostępniony kontekst sprzętu Włącz filtr miękki Wideo Migotanie Niestandardowy współczynnik proporcji Szerokość Niestandardowy współczynnik kształtu Y Poz Synchronizacja Tryb pełnoekranowy z pełnym ekranem Wysokość okna Pełnoekranowa wysokość Wi Fi Kolor czcionki czerwony Kolor czcionki niebieski Niestandardowy Monochromia Systematyczny Pixel RetroSystem Kolor menu Ciemny Poranny błękit Elektryczny błękit Czerwone dziedzictwo Zwykły Czerwień wulkaniczna Współczynnik skali menu Pokaż kartę Historii Pokaż kartę Listy odtwarzania Pokaż kartę Obraz Pokaż kartę Ustawienia Pokaż kartę Gry Online Motyw ikon menu Ustawienia Shader Włącz lub wyłącz nieoficjalne osiągnięcia i lub funkcje beta do celów testowych Włącz lub wyłącz tabele wyników w grze Nie jeśli tryb Hardcore jest wyłączony Włącz lub wyłącz powiadomienia OSD dla osiągnięć Zmień sterowniki używane przez system Zmień ustawienia rdzenia Zmień nakładkę ekranu i nakładkę klawiatury oraz ustawienia powiadomień na ekranie Zmień ustawienia zapisu Zmień ustawienia interfejsu użytkownika Zmień ustawienia prywatności Zmień domyślne w których znajdują się pliki Skonfiguruj ustawienia serwera i sieci Zmień ustawienia wyjścia audio Zapisuje zmiany w pliku konfiguracyjnym przy wyjściu Zarządzaj i twórz pliki konfiguracyjne Wyświetla bieżącą liczbę klatek na sekundę na ekranie Kombinacja przycisków gamepada do przełączania menu Skonfiguruj elementy sterujące dla tego użytkownika Dołącz lub obsługuj sesję gry online Wyświetl informacje o systemie Włącz lub wyłącz udostępnianie sieciowe folderów Pokaż ukryte pliki katalogi w przeglądarce plików Włącz lub wyłącz zdalny dostęp do wiersza poleceń Ustawia rozmiar okna względem głównego rozmiaru wyświetlania Alternatywnie możesz ustawić szerokość i wysokość okna poniżej dla ustalonego rozmiaru okna Wstawia czarną klatke między klatkami Przydatny dla użytkowników z którzy chcą odtwarzać zawartość aby wyeliminować efekt duchów Określa liczbę jaką procesor może uruchomić przed gdy używana jest Trudna synchronizacja z GPU który ekran wyświetlacza ma być używany Częstotliwość odświeżania zgłoszona przez sterownik ekranu Skanuje sieci bezprzewodowe i nawiązuje połączenie Dodano do ulubionych Dołączony dysk Stosowanie zmian w kodzie Wyciszenie Dźwięku Błąd podczas zapisywania pliku autoconfig Nie można zainicjować autozapisu Blokowanie nadpisywania SRAM bajty Tryb Hardcore stan zapisu i przewijanie do tyłu były wyłączone Skompilowany z API Połączony z Pominięto ładowanie treści Implementacja załaduje ją samodzielnie Plik opcji rdzenia został pomyślnie utworzony Nie można znaleźć zgodnego systemu Nie można otworzyć ścieżki danych Nie można odczytać nagłówka filmu Niezgodność sumy kontrolnej CRC32 między plikiem treści a zapisaną sumą kontrolną w nagłówku pliku odtwarzania Powtórka najprawdopodobniej zsynchronizuje się podczas odtwarzania Dekompresja już trwa Wykryty obszar widoku Odłącz urządzenie od poprawnego portu Wyrzucony Index Błąd Rdzeń Libretro wymaga specjalnych ale żadne nie zostały dostarczone Błąd podczas zapisywania pliku opcji podstawowych Błąd podczas usuwania pliku remap Aplikacja zewnętrzna Dir Wyodrębnianie pliku Nie udało się Nie można przydzielić pamięci na poprawioną zawartość Nie powiodło się wiązanie gniazda Nie można wyodrębnić treści ze skompresowanego pliku Nie udało się załadować Nie udało się załadować pliku filmowego Nie udało się załadować stanu z Nie udało się załatać Nie udało się odebrać pseudonimu Nie można odebrać rozmiaru pseudonimu z hosta Nie udało się usunąć dysku z zasobnika Nie udało się zapisać SRAM Nie udało się wysłać pseudonimu Nie udało się wysłać pseudonimu do klienta Nie udało się wysłać danych SRAM do klienta Nie można uruchomić nagrywania filmu Nie udało się zrobić zrzutu ekranu Nie udało się cofnąć stanu zapisania Błąd krytyczny odebrany w Znajdź stan automatycznego zapisywania w Znaleziono pierwszą ścieżkę danych w pliku Znaleziony moduł cieniujący Opcje Otrzymałem nieprawidłowy indeks dysku Skup się na grze Rdzeń Libretro jest renderowany sprzętowo Musi także korzystać z nagrywania po cieniowaniu Wejdź w kod Wprowadź wstępnie ustawioną nazwę pliku Interfejs Magazyn wymienny w bajtach w megabajtach Frontend dla libretro Załadowany stan z gniazda Brak jednego lub więcej plików oprogramowania układowego Ładowanie pliku historii Pamięć Wygląda na to
Definition: msg_hash_pl.h:2324
bool userOutputUsed() const
Definition: linkValidate.cpp:735
static const TIntermTyped * findLValueBase(const TIntermTyped *, bool swizzleOkay)
Definition: Intermediate.cpp:2429
bool getXfbMode() const
Definition: localintermediate.h:546
int getLocalSizeSpecId(int dim) const
Definition: localintermediate.h:543
bool promoteBinary(TIntermBinary &)
Definition: Intermediate.cpp:3006
TIntermTyped * addComma(TIntermTyped *left, TIntermTyped *right, const TSourceLoc &)
Definition: Intermediate.cpp:2159
int addUsedLocation(const TQualifier &, const TType &, bool &typeCollision)
Definition: linkValidate.cpp:761
static const char * getResourceName(TResourceType)
Definition: Intermediate.cpp:3815
bool setLocalSize(int dim, int size)
Definition: localintermediate.h:527
bool hasCounterBufferName(const TString &name) const
Definition: localintermediate.h:368
GLsizei GLsizei GLchar * source
Definition: glext.h:6688
Definition: Types.h:385
void setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode)
Definition: localintermediate.h:374
const GLdouble * v
Definition: glext.h:6391
EProfile profile
Definition: localintermediate.h:678
TIntermTyped * addMethod(TIntermTyped *, const TType &, const TString *, const TSourceLoc &)
Definition: Intermediate.cpp:2178
bool isSpecializationOperation(const TIntermOperator &) const
Definition: Intermediate.cpp:2652
std::set< TString > ioAccessed
Definition: localintermediate.h:732
std::string entryPointMangledName
Definition: localintermediate.h:676
bool earlyFragmentTests
Definition: localintermediate.h:699
EShSource getSource() const
Definition: localintermediate.h:256
int numEntryPoints
Definition: localintermediate.h:684
bool hlslOffsets
Definition: localintermediate.h:725
TOperator mapTypeToConstructorOp(const TType &) const
Definition: Intermediate.cpp:1757
bool postDepthCoverage
Definition: localintermediate.h:700
int addUsedOffsets(int binding, int offset, int numOffsets)
Definition: linkValidate.cpp:887
Definition: SymbolTable.h:81
int getInvocations() const
Definition: localintermediate.h:491
int size() const
Definition: localintermediate.h:76
bool isMultiStream() const
Definition: localintermediate.h:548
TIntermTyped * addBuiltInFunctionCall(const TSourceLoc &line, TOperator, bool unary, TIntermNode *, const TType &returnType)
Definition: Intermediate.cpp:382
bool invertY
Definition: localintermediate.h:722
int numPushConstants
Definition: localintermediate.h:686
TRange location
Definition: localintermediate.h:127
Definition: intermediate.h:67
EShTextureSamplerTransformMode textureSamplerTransformMode
Definition: localintermediate.h:739
void addIfNonZero(const char *process, int value)
Definition: localintermediate.h:189
bool isDepthReplacing() const
Definition: localintermediate.h:574
bool setDepth(TLayoutDepth d)
Definition: localintermediate.h:565
Definition: ShaderLang.h:356
bool hlslIoMapping
Definition: localintermediate.h:727
EProfile getProfile() const
Definition: localintermediate.h:379
TVertexOrder
Definition: Types.h:313
void setVersion(int v)
Definition: localintermediate.h:376
TRange binding
Definition: localintermediate.h:142
bool isIntegralConversion(TBasicType from, TBasicType to) const
Definition: Intermediate.cpp:1250
int addXfbBufferOffset(const TType &)
Definition: linkValidate.cpp:1010
TBasicType
Definition: BaseTypes.h:46
TCall(const TString &pCaller, const TString &pCallee)
Definition: localintermediate.h:97
std::array< std::map< int, int >, EResCount > shiftBindingForSet
Definition: localintermediate.h:717
GLboolean invert
Definition: glext.h:6381
TIntermAggregate * growAggregate(TIntermNode *left, TIntermNode *right)
Definition: Intermediate.cpp:2070
bool isFPIntegralConversion(TBasicType from, TBasicType to) const
Definition: Intermediate.cpp:1339
TBasicType basicType
Definition: localintermediate.h:129
T addCounterBufferName(const T &name) const
Definition: localintermediate.h:367
void setEntryPointName(const char *ep)
Definition: localintermediate.h:257
bool overlap(const TIoRange &rhs) const
Definition: localintermediate.h:123
bool getEarlyFragmentTests() const
Definition: localintermediate.h:562
void checkCallGraphBodies(TInfoSink &, bool keepUncalled)
Definition: linkValidate.cpp:617
void setShiftBindingForSet(TResourceType res, unsigned int shift, unsigned int set)
Definition: localintermediate.h:278
bool setInvocations(int i)
Definition: localintermediate.h:484
Definition: ConstantUnion.h:874
void mergeBodies(TInfoSink &, TIntermSequence &globals, const TIntermSequence &unitGlobals)
Definition: linkValidate.cpp:207
GLsizei const GLfloat * value
Definition: glext.h:6709
SpvVersion spvVersion
Definition: localintermediate.h:680
TIntermNode * treeRoot
Definition: localintermediate.h:681
std::vector< TIoRange > usedIo[4]
Definition: localintermediate.h:733
Definition: localintermediate.h:120
static const unsigned int layoutXfbStrideEnd
Definition: Types.h:712
bool getBinaryDoubleOutput()
Definition: localintermediate.h:639
bool isIntegralPromotion(TBasicType from, TBasicType to) const
Definition: Intermediate.cpp:1218
void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode *root)
Definition: Intermediate.cpp:3809
TIntermTyped * fold(TIntermAggregate *aggrNode)
Definition: Constant.cpp:703
GLsizei stride
Definition: glext.h:6488
Definition: Types.h:307
int checkLocationRange(int set, const TIoRange &range, const TType &, bool &typeCollision)
Definition: linkValidate.cpp:866
void addProcessArgument(const std::string &arg)
Definition: localintermediate.h:632
int index
Definition: localintermediate.h:130
void output(TInfoSink &, bool tree)
Definition: intermOut.cpp:1381
bool getPixelCenterInteger() const
Definition: localintermediate.h:560
#define false
Definition: ordinals.h:83
void removeTree()
Definition: Intermediate.cpp:2608
Definition: civetweb.c:1024
const EShLanguage language
Definition: localintermediate.h:673
bool needsLegalization() const
Definition: localintermediate.h:636
EShSource
Definition: ShaderLang.h:113
Definition: video4linux2.c:51
GLintptr offset
Definition: glext.h:6560
GLint left
Definition: glext.h:8393
bool useStorageBuffer
Definition: localintermediate.h:726
void push_back(selectorType comp)
Definition: localintermediate.h:66
const std::string & getSourceText() const
Definition: localintermediate.h:626
void addPushConstantCount()
Definition: localintermediate.h:408
bool originUpperLeft
Definition: localintermediate.h:693
bool isFPConversion(TBasicType from, TBasicType to) const
Definition: Intermediate.cpp:1330
bool useUnknownFormat
Definition: localintermediate.h:724
Definition: intermediate.h:1042
const char * extension
Definition: civetweb.c:4908
Definition: intermediate.h:1462
TString callee
Definition: localintermediate.h:99
bool setLocalSizeSpecId(int dim, int id)
Definition: localintermediate.h:536
void addIoAccessed(const TString &name)
Definition: localintermediate.h:586
const std::vector< std::string > & getProcesses() const
Definition: localintermediate.h:197
bool usingHlslOFfsets() const
Definition: localintermediate.h:352
void addArgument(const std::string &arg)
Definition: localintermediate.h:184
void addRequestedExtension(const char *extension)
Definition: localintermediate.h:400
void setNoStorageFormat(bool b)
Definition: localintermediate.h:339
int openGl
Definition: Versions.h:88
void finalCheck(TInfoSink &, bool keepUncalled)
Definition: linkValidate.cpp:392
TLayoutDepth
Definition: Types.h:384
bool setOutputPrimitive(TLayoutGeometry p)
Definition: localintermediate.h:549
int getShiftBindingForSet(TResourceType res, unsigned int set) const
Definition: localintermediate.h:293
const GLfloat * m
Definition: glext.h:11755
bool getInvertY() const
Definition: localintermediate.h:330
std::vector< std::string > processes
Definition: localintermediate.h:200
Definition: lobject.h:303
bool overlap(const TOffsetRange &rhs) const
Definition: localintermediate.h:138
bool setVertices(int m)
Definition: localintermediate.h:492
bool addUsedConstantId(int id)
Definition: linkValidate.cpp:909
TIntermTyped * addIndex(TOperator op, TIntermTyped *base, TIntermTyped *index, TSourceLoc)
Definition: Intermediate.cpp:265
TIntermSequence & findLinkerObjects() const
Definition: linkValidate.cpp:721
void setDepthReplacing()
Definition: localintermediate.h:573
int version
Definition: localintermediate.h:679
Definition: ShaderLang.h:114
void mergeImplicitArraySizes(TType &, const TType &)
Definition: linkValidate.cpp:269
TLayoutGeometry inputPrimitive
Definition: localintermediate.h:690
void setSourceFile(const char *file)
Definition: localintermediate.h:623
const std::string & getSourceFile() const
Definition: localintermediate.h:624
int getNumEntryPoints() const
Definition: localintermediate.h:406
bool isRecursive() const
Definition: localintermediate.h:409
bool canImplicitlyPromote(TBasicType from, TBasicType to, TOperator op=EOpNull) const
Definition: Intermediate.cpp:1382
TIntermTyped * addBinaryMath(TOperator, TIntermTyped *left, TIntermTyped *right, TSourceLoc)
Definition: Intermediate.cpp:116
void resize(int s)
Definition: localintermediate.h:71
TIoRange(TRange location, TRange component, TBasicType basicType, int index)
Definition: localintermediate.h:121